Все процессы устанавливают цифры c код выхода (0..255), когда они заканчиваются. Измените ожидаемый сценарий, чтобы вы могли различать guish между сценарием, заканчивающимся нормально (когда обычно код выхода будет равен 0), и явным exit
после ошибки. Сделайте это, добавив параметр в эту строку, например:
...
send_user "Permission denied\n"
exit 77
...
Вы можете восстановить этот код в программе на C / C ++ с помощью
int wstatus = system(command.c_str());
if (WIFEXITED(wstatus))
int exit_code = WEXITSTATUS(wstatus);
wstatus
состоит из 2 части, код завершения процесса и некоторые флаги, дающие информацию о том, был ли процесс запущен или был прерван, и так далее. Используйте вышеупомянутые макросы для извлечения информации. См man 3 exit
, man waitpid
.