2013-01-09 1 views

답변

3

exit에 대한 이식 가능한 값은 0, EXIT_FAILUREEXIT_SUCCESS입니다. 0EXIT_SUCCESS과 같습니다.

+0

표준 (C 중 적어도)은 '0'의 반환 값과 'EXIT_SUCCESS'와의 관계를 알려주지 않습니다 (내가 아는 한). 표준을 참조 할 수 있습니까? – Shahbaz

+0

그들은 동등하지만 반드시 같지는 않습니다. @Shahbaz. 즉, 어느 하나를'exit'로 전달하면 프로그램은 "implementation * defined status of successful termination *"을 반환하게됩니다. (7.20.4.3/5) 일어나는 것을 보장하는 가장 간단한 방법은 값을 동일하게 만드는 것이지만, 여러 개의 "성공"값 (즉, 'EXIT_SUCCESS')을 인식하기 위해'exit '를 구현할 수 있습니다. 로 확대됨). –

+0

@RobKennedy, 맞아. "상태 값이 ** 제로 **이거나 EXIT_SUCCESS 인 경우"에서 0을 놓쳤습니다. – Shahbaz

2

에서 : http://www.cplusplus.com/reference/cstdlib/EXIT_SUCCESS/

프로그램에서 성공 종료에 대한 :

프로그램에서 실패 종료에 대한
exit(EXIT_SUCCESS); 

:

exit(EXIT_FAILURE); 

Wikipedia에서 :

매크로 EXIT_SUCCESS 및 EXIT_FAILURE 외에도 C 표준 은 리턴 코드의 의미를 정의하지 않습니다. 리턴 코드 사용 규칙은 플랫폼에 따라 다릅니다 (플랫폼 별 섹션 참조). 위키 피 디아에서

:

DOS DOS 용어에서

는 오류 수준은 실행 프로그램 또는 서브 루틴에 의해 반환되는 정수 종료 코드입니다. 오류 수준은 일반적으로 0에서 255까지입니다. DOS에서는 256 개의 오류 코드 만 사용할 수 있습니다.

윈도우

윈도우는 종료 코드로 부호있는 32 비트 정수를 사용합니다. [9] 프로세스가 초기화에 실패하면 Windows 시스템 오류 코드가 반환 될 수 있습니다. [10] Windows 시스템 오류 코드는 온라인에서 사용할 수 있습니다. [11]

종료 코드는 DOS에서 상속 된 errorlevel 용어로 인터프리터 CMD.exe와 같은 명령 줄을 통해 직접 참조됩니다. .NET Framework 프로세스 및 Windows PowerShell에서는이 개체를 Process 개체의 ExitCode 속성으로 참조합니다.

은 위키 피 디아에 따르면, 다음 link는 Windows 플랫폼

+0

jcatki.no-ip.org/fncpp/cplusplus.com – Griwes

+1

위키 백과가 잘못되었습니다. 0은'exit'에 유효한 인수입니다. –

1

관련된 오류 코드가 포함 된 이러한 표준은 내가 아는 한이 없습니다. 유일하게 표준은 EXIT_SUCCESS (stdlib.h에서)를 반환하는 것이 성공적인 경우에 대비합니다. 이렇게하면 프로그램을 호출하는 스크립트가 성공을 확인하는 데 도움이됩니다. 반환하는 오류 코드는 프로그램에 대한 문서화가 필요합니다. POSIX는 main에서 0-255 사이의 값을 반환 할 것을 권장합니다. 보통 0은 EXIT_SUCCESS입니다.

하나의 특정 실패 만있는 경우 EXIT_FAILURE를 사용할 수 있습니다.

+0

Re : "일반적으로'0'은'EXIT_SUCCESS'"입니다 : 일치하는 모든 구현에서'0'과'EXIT_SUCCESS' ** 둘 다 성공을 나타 내기 위해 사용될 수 있습니다. –

관련 문제