LINUX.ORG.RU

Код возврата от system() - язык С


0

0

Привет,

Как правильно получить код ошибки приложения запущенного через sytem() ?

Почему след. код не правильно работает?

#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>

int main()
{
int s = system("/sbin/iptables");
printf("%s\n", strerror(WEXITSTATUS(s)));
return 0;
}
$ ./a.out
sh: /sbin/iptables: No such file or directory
Key has expired

anonymous

ты получаешь код возврата от шелла а не от iptables

Если исполняемого файла нет -- это 127

dilmah ★★★★★
()
Ответ на: комментарий от anonymous

Про strerror внимательно почитай, про errno и WEXITSTATUS (который к errno не имеет никакого отношения).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.