Процессы могут завершаться с разными кодами выхода по нескольким причинам:
- Значение, указанное в вызове ExitProcess или TerminateProcess. 1 Это либо значение, указанное в вызове, либо значение, возвращаемое функцией main или WinMain процесса. 1
- Значение исключения, вызвавшего завершение. 1 Если процесс завершается из-за неустранимого исключения, код выхода — это значение исключения. 1
- Значение, возвращаемое функцией main или WinMain процесса. 1 Как правило, 0-код указывает на успех, все остальные сигнализируют о разных причинах провала. 2
Также в Linux не все консольные программы возвращают true (0) или false (1) в качестве «последнего» вывода. 3 Например, есть команды, которые ничего не выводят на экран, а другие просто выкидывают вывод результатов выполнения в stdout, и тогда получить код возврата не всегда возможно. 3