Соглашение должно иметь
- Ноль за успех
- Положительные числа для предупреждений
- Отрицательные числа для ошибок
История, стоящая за этим, заключается в том, что коды ошибок в некоторых средах должны быть 8-битными значениями. Для серьезных ошибок по договоренности устанавливается старший бит (который фактически делает его -127 -> -1 для ошибок и 1 -> 127 для предупреждений)
Конечно, ANSI-C 99 определяет только два макроса, EXIT_SUCCESS
, который равен 0, и EXIT_FAILURE
, который является некоторым другим числом, которое не определено в спецификации.