Por razões históricas, o status de saída de um processo é um número de 8 bits. O número que você passa para exit
é reduzido no módulo 256 (2⁸).
Além disso, os valores 126 e acima têm um significado convencional, indicando uma falha ao iniciar o programa (126 ou 127) ou um programa que foi morto por um sinal (128 e acima). Então, enquanto você pode retornar esses valores, você não deve a menos que você queira simular essas condições.
A regra é retornar 0 para sucesso e algum outro valor para indicar erros. Esta é uma regra na medida em que muitas ferramentas interpretam 0 como sucesso: comandos condicionais como if
e while
, ferramentas que anulam erros como scripts de shell sob set -e
e makefiles, etc.
Em relação a erros, as convenções mais comuns são retornar 1 em qualquer erro ou retornar 2 em qualquer erro. A terceira convenção comum é retornar 1 em uma falha esperada (por exemplo, um comando de pesquisa que não encontra nada) e 2 em uma falha inesperada (por exemplo, o arquivo a ser pesquisado não existe). Se você precisar mapear os códigos de erro HTTP para o status de saída, você terá o intervalo de 1 a 125 para jogar (com 200 mapeamentos de sucesso para 0), não há um padrão para isso.