종료 상태
컴퓨터 프로그래밍에서 프로세스의 종료 상태(exit status) 또는 반환 코드(return code)는 특정 프로시저나 위임된 작업의 실행이 끝났을 때 차일드 프로세스(피호출자)로부터 부모 프로세스(호출자)에 전달된 작은 숫자이다. 도스에서는 이를 errorlevel(에러레벨)로 간주한다.
시맨틱
[편집]아미가OS
[편집]아미가OS에서는 세 가지 수준으로 정의된다:
- WARN 5
- ERROR 10
- FAILURE 20
셸 및 스크립트
[편집]실행된 셸 명령의 종료 상태는 waitid 시스템 호출이나 동등한 함수에 의해 반환되는 값이다.
셸의 목적을 위해 종료 상태 0으로 끝난 명령은 성공을 뜻한다. 0이 아닌 종료 상태는 실패를 가리킨다. 숫자 N인 신호에 의해 명령이 종료되면, 셸은 변수 $?를 128 이상의 값으로 설정한다. 대부분의 셸들은 128+N을 사용하지만, ksh93은 256+N을 사용한다.
C 언어
[편집]C 프로그래밍 언어는 EXIT_SUCCESS와 EXIT_FAILURE 매크로를 반환하거나, 성공이나 실패 신호를 제공함으로써 프로그램들이 main 함수로부터 반환하거나 종료할 수 있게 한다. 유닉스 계열 운영 체제에서는 각각 0과 1을 가리킨다.[1] 또, C 프로그램은 정수 상태나 종료 매크로를 exit() 함수의 첫 번째 변수로 지정하여 종료할 수 있다.
도스
[편집]도스 용어에서 errorlevel은 실행 프로그램이나 함수에 의해 반환되는 정수로 된 종료 코드이다. Errorlevel의 범위는 일반적으로 0부터 255까지이다. 도스에서는 오직 256개의 오류 코드만 이용 가능하다.
자바
[편집]자바에서는 보안 관리자가 허용하는 한도 내에서 어떠한 메소드라도 호출 System.exit(int status)을 호출할 수 있다. 현재 실행 중인 자바 가상 머신을 종료할 것이다. 0이 아닌 상태 코드는 비정상 종료를 가리킨다.[2]
오픈VMS
[편집]오픈VMS에서 성공은 홀수값으로 인지되며 실패는 짝수값으로 인지된다.
POSIX
[편집]POSIX 호환 운영 체제는 일반적으로 0을 성공으로, 0이 아닌 것을 오류로 간주한다.[3]
윈도우
[편집]윈도우는 32비트 singed 정수를 종료 코드로 사용한다.[4] 프로세스가 초기화를 실패하면 윈도우 시스템 오류 코드가 반환된다.[5][6]
종료 코드는 이를테면 명령 줄 인터프리터인 CMD.EXE에 의해 도스에서 비롯된 errorlevel이라는 용어로 직접 참조된다. 닷넷 프레임워크 프로세스와 윈도우 파워셸은 Process
오브젝트의 ExitCode
프로퍼티로 이를 참조한다.
같이 보기
[편집]각주
[편집]- ↑ “The GNU C Library Reference Manual 25.6.2: Exit Status”. Gnu.org. 2012년 7월 9일에 확인함.
- ↑ “Java 1.6.0 API”. Sun. 2008년 5월 6일에 확인함.
- ↑ “Chapter 6. Exit and Exit Status”. Faqs.org. 2012년 7월 9일에 확인함.
- ↑ “ExitCodes bigger than 255, possible?”. 2009년 9월 28일에 확인함.
- ↑ “Windows System Error Codes (exit codes)”. 2009년 9월 28일에 확인함.
- ↑ “MSDN article System Error Codes”. Microsoft.