2015-08-17 2 views
-1

Я использую ioctl в своем C-коде, который вызывает некоторую команду ioctl в коде Fedora 2.6.10 ядра Linux, который я могу легко редактировать и перестраивать., которую команда 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; 
} 

ответ

3

Вы можете использовать ERRNO, чтобы найти то, что точно не удалось с вашим призванным IOCTL.

"Man ioctl" С уважением.

0

Используйте perror, чтобы распечатать системные сообщения об ошибках для таких вызовов. Они принесут то, что пойдет не так.

Смежные вопросы