网络与信号系统调用详解
1. 杂项网络系统调用
在网络编程中,有一些系统调用并不适合归类到之前介绍的类别中,下面将详细介绍这些杂项网络系统调用。
1.1 网络接口索引到名称的映射
if_indextoname函数用于将网络接口索引映射为名称,其函数原型如下:
#include <net/if.h> char *if_indextoname( unsigned ifindex, /* interface index */ char *ifname /* interface name */ ); /* Returns name or NULL on error (sets errno) */需要注意的是,ifname参数必须是一个至少为IF_NAMESIZE字节的缓冲区,其中包含用于终止的空字节。该函数会返回指向该缓冲区的指针。如果未找到名称,此函数返回 0,而不是 -1。
1.2 send 和 recv 函数
send和recv函数的行为与write和read类似,不同之处在于它们允许指定标志。由于它们没有套接字地址参数,因此通常用于已连接的套接字。对于无连接的套接字,sendto、sendmsg