获取以太网端口的ioctl文件描述符

我需要获取文件描述符以在ioctl()调用中用于Linux中的以太网端口.不确定如何执行此操作.

解决方法:

假设您的程序具有足够的权限,只需使用开放套接字的文件描述符,并使用传递给ioctl()的ifreq结构中的设备名称即可.

从文档:

Linux supports some standard ioctls to
configure network devices. They can
be used on any socket’s file
descriptor regardless of the family or
type. They pass an ifreq structure:

套接字不必绑定到目标设备,也不必是任何特定系列的.任何打开的套接字fd都会这样做(同样具有适当的特权),只需为您的特定任务打开一个套接字,然后等待ioctl()返回并关闭它即可.

有关更多信息,请参见man 7 netdevice;如果没有安装适当的文档包,请参见here(提示,该包通常根据您的发行版而命名为manpages-dev或manpages-devel).

您还可以查看net-tools软件包的源代码,根据发行版的不同,其名称可能有所不同.这就是ifconfig的来源(此处为Debian / Ubuntu).

抱歉,最初的模棱两可,我以为您正在尝试配置特殊的多功能设备(不确定为什么现在这样做,也许睡眠不足).

上一篇:如何确定linux串口上剩余的写入/输出缓冲区空间量?


下一篇:python – 从具有不同间隔的截断正态分布中采样的矢量化代码