我在我的C代码中使用了ioctl,它在linux内核Fedora 2.6.10代码中调用了一些ioctl命令,我可以轻松编辑和重建。
ioctl命令失败。如何判断调用哪个ioctl命令?
附加的用户空间代码。打印第二个console_printf()
int skfd = -1;
struct ifreq ifr;
if (( skfd = socket( AF_INET, SOCK_DGRAM, 0 )) < 0)
{
console_printf("ac_get_lan_link_ip_address - failed to open socket\n");
return -1;
}
if(ioctl( skfd, SIOCGIFADDR, &ifr ) == -1)
{
console_printf("ac_get_lan_link_ip_address - failed to run ioctl\n");
ac_close(skfd);
return -1;
}
答案 0 :(得分:3)
您可以使用errno查找被调用的ioctl确实失败的内容。
"Man ioctl" 问候。
答案 1 :(得分:0)
使用perror
打印此类呼叫的系统错误消息。他们会产生什么问题。