我需要获取文件描述符以在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).
抱歉,最初的模棱两可,我以为您正在尝试配置特殊的多功能设备(不确定为什么现在这样做,也许睡眠不足).
标签:ioctl,c-3,linux 来源: https://codeday.me/bug/20191106/1999420.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。