Код выхода процесса обычно не соответствует коду errno
.
Наиболее переносимая стратегия - просто иметь 1 для выходов из-за отказа (или даже более переносимо EXIT_FAILURE
, как определено в stdlib.h
) и 0 для успешных выходов.
Некоторые программы используют стратегию bsd sysexits для сопоставления дополнительных условий выхода с кодами выхода.
Другие программы могут выбрать возврат errno
кодов (относящихся к сбою системного вызова, который в конечном итоге привел к завершению процесса) или, например, errno+1
, и вы обычно сможете вписать это в 8 битов, используемых exit
, но системногошироко применяемая стратегия кода выхода или даже неисполненное соглашение, кроме нулевого кода выхода, означающего успех, и ненулевого кода выхода, означающего (своего рода) сбой.