Это можно сделать только в том случае, если команда явно возвращает этот статус.
rc = system(...);
if (rc != -1 && WIFEXITED(rc))
printf("Terminated with status %d\n", WEXITSTATUS(rc));
Возвращаемое значение равно -1 при ошибке (например, fork(2)
не удалось), а состояние возвратакомандуй иначе.Последний статус возврата имеет формат, указанный в wait(2)
.Таким образом, код выхода команды будет WEXITSTATUS(status)
.
Но если команда просто возвращает 1
, когда что-то идет не так, вызывающей стороне трудно определить фактическую причину.