Правильное использование кода ошибки возврата на выходе

Для приложений C/C ++ в Windows (не GUI), какой должен быть правильный список кодов ошибок для разных сбоев? Я видел разные списки, например, от IBM и других, но мне было интересно, существует ли какой-то консенсус относительно типичных кодов ошибок, предоставляемых пользователю при выходе из программы.

Для аргумента  `exit`  есть три переносных значения:  `0` ,  `EXIT_FAILURE`  и  `EXIT_SUCCESS` .  `0`  эквивалентен  `EXIT_SUCCESS` .



От: <http://www.cplusplus.com/reference/cstdlib/EXIT_SUCCESS/>

для успеха выхода из программы:

```
exit(EXIT_SUCCESS);

```

для выхода из программы:

```
exit(EXIT_FAILURE);

```

Из  [Wikipedia](https://en.wikipedia.org/wiki/Errorlevel#DOS) :

>  Помимо макросов EXIT\_SUCCESS и EXIT\_FAILURE, стандарт C
>   не определяет значение кодов возврата. Правила использования
>   коды возврата различаются на разных платформах (см.
>   участки). 
> 
> 

В википедии:

>  <сильный> DOS 
> 
> 
>   
>    В терминологии DOS уровень ошибок - это код завершения целого кода, возвращаемый
>   исполняемую программу или подпрограмму. Уровни ошибок обычно варьируются от
>   0 до 255. В DOS доступно только 256 кодов ошибок. 
> 
> 
>   
>    <сильный> Окно 
> 
> 
>   
>    В качестве кодов выхода Windows использует 32-разрядные целые числа. [9] Если процесс
>   неудачная инициализация, может быть возвращен код ошибки системы Windows. [10]
>   Коды ошибок системы Windows доступны в Интернете. [11] 
> 
> 
>   
>    Коды выхода напрямую ссылаются, например, на командную строку
>   интерпретатора CMD.exe в терминологии уровня ошибок, унаследованной от DOS.
>   Процессы .NET Framework и Windows PowerShell относятся к нему как к
>   Свойство ExitCode объекта Process. 
> 
> 

Согласно wikipedia, следующая  [ссылка](http://www.hiteksoftware.com/mize/Knowledge/articles/049.htm)  содержит коды ошибок, связанные с окнами Платформа



Насколько я знаю, таких стандартов нет. Единственный стандарт - вернуть EXIT\_SUCCESS (из stdlib.h) в случае успешного возврата. Это помогает скриптам, которые называют вашу программу проверкой на успех. Коды ошибок, которые вы возвращаете, должны быть хорошо документированы для вашей программы. POSIX рекомендует возвращать между 0-255 из основного. Обычно 0 - EXIT\_SUCCESS.

Если у вас есть только один возврат отказа, вы можете использовать EXIT\_FAILURE.