2012-03-23 2 views
5

세 가지 응용 프로그램을 실행할 Perl 스크립트가 있습니다. 모두 종료 코드 상태가 다릅니다.종료 코드 상태가 0 인 경우 항상 Perl에서 성공적으로 실행됩니까?

첫 번째 응용 프로그램 종료 코드 상태는 1입니다. 응용 프로그램은 정상적으로 문제없이 종료되었습니다. (성공)

두 번째 응용 프로그램 종료 코드 상태는 99입니다. 그러나 응용 프로그램은 정상적으로 정상적으로 종료되었습니다. (성공)

마지막으로 세 번째 응용 프로그램 종료 코드 상태는 0입니다. 첫 번째 및 두 번째 응용 프로그램과 동일하게 응용 프로그램이 정상적으로 종료되었습니다. (성공)

참고 : 이미 종료 코드 상태를 8 비트 오른쪽으로 옮깁니다.

질문 : 성공적으로 실행하면 종료 코드 상태는 항상 0으로 반환됩니까?

가혹한 의견을 말하지 말고, 나는 혼란 스럽습니다. 제발 조언.

답변

7

반환 상태는 하위 프로세스에 의해 선택됩니다. 성공적인 운영을 위해서는 통상적으로 0이지만 그 대회를 집행 할 아무 것도 없습니다.

프로세스가 정보 반환 상태가 다른 성공 양식을 나타내는 것을 반환 할 수도 있습니다. 예를 들어, 디렉토리의 모든 파일을 수정 한 프로그램은 수정할 파일이 없다고 말하기 위해 0이 아닌 값을 반환 할 수 있습니다.

반환되는 값에 대해 언급 된 내용이 있는지 응용 프로그램의 설명서를 확인해야합니다. 아무것도 찾을 수 없다면 경험적으로 어떤 값이 성공을 의미하는지 결정해야합니다.

4

대부분의 운영 체제 환경은 정상 종료 코드 또는 예외 코드가 각 프로그램에 대해 개별적으로 문서화되었는지 여부를 나타내는 성공적인 종료 코드 및 기타 값을 나타내는 0을 제안하고 제공합니다.

심지어 단순한 MSDOS는 배치 파일이 특정 errorlevel에 반응하고 다른 작업을 수행하는 데 좋은 지원을 제공합니다.

0이 아닌 반환 상태에 대한 강력한 기본 반응이있는 환경은 VMS/OpenVMS 운영 체제 제품군입니다. 귀하의 응용 프로그램이 거기에서 실행될 수 있다면 표준을 따르십시오.

관련 문제