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

时间:2010-06-15 17:50:27

标签: c linux ioctl

我需要获取文件描述符,以便在Linux中使用ioctl()调用以太网端口。不知道怎么做。

2 个答案:

答案 0 :(得分:3)

使用传递给ifreq的{​​{1}}结构中的设备名称,只需使用打开套接字的文件描述符,假设您的程序具有足够的权限。

来自文档:

  

Linux支持一些标准的ioctl   配置网络设备。他们能   用于任何套接字的文件   描述符,无论家庭或   类型。他们传递了一个ifreq结构:

套接字不需要绑定到目标设备,也不需要属于任何特定系列。任何打开的套接字fd都会(再次,具有适当的权限),只需为您的特定任务打开一个,等待ioctl()返回并关闭它。

如果您没有安装相应的文档包,请参阅ioctl();如果您没有安装相应的文档包,请参阅here(提示,包通常名为man 7 netdevicemanpages-dev,具体取决于在你的发行版上)

您还可以查看manpages-devel包的来源,根据您的发行版可能会有不同的名称。这是net-tools(Debian / Ubuntu)的来源。

对不起原来的歧义,我以为你试图配置一个特殊的多功能设备(不知道为什么现在,也许是睡眠不足)。

答案 1 :(得分:1)

你可以这样做fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP)

使用strace查看 ifconfig 调用的函数。