Есть ли в Windows эквивалент стандартных (ish) кодов завершения процесса UN * X?

Мне нужно решить, какой код выхода использовать exit () в разных сценариях. Я просто читал

Есть ли стандартный статус выхода коды в Linux?

но мне нужно написать что-то вроде кроссплатформенного Linux + Windows. MS Windows, похоже, не имеет чего-то вроде /usr/include/sysexits.h; у него есть только stdlib.h C89, который обеспечивает

#define EXIT_SUCCESS    0
#define EXIT_FAILURE    1

Так это единственное, что можно переносить? Или в Windows есть более сложные коды выхода, соответствующие стандарту платформы?

Примечание. Я не имею в виду Коды системных ошибок, конечно.


person einpoklum    schedule 20.07.2015    source источник
comment
Стандарт де-факто должен либо возвращать 0/1, либо возвращать код системной ошибки (или код исключения). Но не все это следуют.   -  person Harry Johnston    schedule 21.07.2015
comment
@HarryJohnston: Ссылка на то, что это стандарт?   -  person einpoklum    schedule 21.07.2015
comment
На самом деле наиболее распространенным поведением является, вероятно, просто возврат 0. Большинство программ с графическим интерфейсом предполагают, что никто все равно не будет смотреть на код возврата, что, как я полагаю, верно в большинстве случаев. Лично я предпочитаю возвращать код ошибки или 1, если конкретный код ошибки не применим.   -  person Harry Johnston    schedule 21.07.2015


Ответы (1)


Есть ли в Windows эквивалент стандартных (ish) кодов завершения процесса UN * X?

Нет, поскольку на практике стандартных кодов выхода IXis не существует (кроме того, 0 указывает на успех, а все остальное - на другое).

person alk    schedule 20.07.2015