Código de Saída em Sistemas Computacionais
Pontos principais
- O código de saída é um número inteiro retornado por um processo encerrado para o seu processo pai.
- Na maioria dos sistemas operacionais baseados em Unix, o valor zero indica execução bem-sucedida.
- Valores diferentes de zero são tipicamente utilizados para sinalizar diferentes tipos de falhas ou erros operacionais.
Na computação, o código de saída (frequentemente referido como exit status ou valor de saída) de um processo encerrado é um número inteiro disponibilizado ao seu processo pai ou chamador. Em ambientes DOS, esse valor é comumente denominado de errorlevel.
Quando programas computacionais são executados, o sistema operacional estabelece uma entidade abstrata conhecida como processo. Em sistemas operacionais multitarefa, como Unix ou Linux, processos ativos podem gerar novos processos. O criador é chamado de processo pai, enquanto os gerados são processos filhos. Ao concluir sua execução, o processo filho invoca uma chamada de sistema para encerrar suas atividades, transmitindo o código de saída para o pai.
Semântica e Convenções
Processos pais e filhos podem estabelecer convenções sobre o significado dos códigos de saída. É uma prática comum de programação que um processo filho retorne o valor zero para indicar sucesso. Valores diferentes de zero geralmente denotam falhas ou condições específicas de erro.
A faixa de códigos utilizada varia conforme a plataforma e o software. Em muitos ambientes do tipo Unix, um código zero representa sucesso, enquanto códigos maiores que zero indicam falhas variadas. Determinados utilitários utilizam valores específicos ou combinações de bits para relatar condições detalhadas do término da execução.
Implementação em Linguagens e Ambientes
Diferentes linguagens de programação e interpretadores de comandos lidam com códigos de saída de maneiras distintas:
- Shell Scripts: Um comando que finaliza com código zero indica sucesso, enquanto códigos diferentes de zero assinalam falhas. Comandos terminados por sinais específicos frequentemente resultam em códigos superiores a 128.
- C e C++: A função principal
mainpermite retornar valores inteiros ou utilizar as macrosEXIT_SUCCESSeEXIT_FAILUREpara sinalizar o término da execução. - Java: O método principal não retorna códigos diretamente, sendo necessário utilizar chamadas como
System.exit()para especificar um status numérico ao encerrar a Máquina Virtual Java.
Perguntas frequentes
O que significa um código de saída igual a zero?
Na maioria dos sistemas operacionais e convenções de programação, um código de saída zero indica que o programa ou comando foi executado com sucesso, sem erros.
Como os scripts de shell tratam os códigos de saída?
Os interpretadores de comandos consideram que qualquer comando que encerre com status zero teve sucesso. Valores diferentes de zero indicam falhas, e comandos interrompidos por sinais frequentemente retornam valores acima de 128.
Onde o termo errorlevel é comumente utilizado?
O termo errorlevel é frequentemente empregado em ambientes DOS para se referir ao código de saída retornado por um programa executável ou sub-rotina.