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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.