누구든지 말해 줄 수 있습니까? C 언어에서 exit(0)
와 의 차이점은 무엇입니까 exit(1)
?
답변
C 언어에서 exit(0)
와 의 차이점은 무엇입니까 exit(1)
?
exit(0)
성공적인 프로그램 종료를 나타내며 완전히 이식 가능하며
exit(1)
(일반적으로) 성공적이지 않은 종료를 나타냅니다. 그러나 사용은 휴대용이 아닙니다.
C 표준은 C 프로그램에서 종료 상태를 정의 EXIT_SUCCESS
하고 EXIT_FAILURE
반환합니다.
0
및 EXIT_SUCCESS
성공적인 종료를 나타 내기 위해 표준에 의해 지정된 값이며, 단, EXIT_FAILURE
unsucessful 종료를 반환하기위한 표준 값입니다. 1
그래도 많은 구현에서 동일하게 사용됩니다.
참고:
C99 표준 : 7.20.4.3 exit
5 항 기능
마지막으로 제어가 호스트 환경으로 반환됩니다. status 값이 0 또는
EXIT_SUCCESS
이면 성공적 종료 상태의 구현 정의 형식이 반환됩니다. status 값이EXIT_FAILURE
이면 실패한 종료 상태의 구현 정의 형식이 반환됩니다. 그렇지 않으면 반환 된 상태는 구현에 따라 정의됩니다.
답변
exit
C 언어에서는 종료 상태를 나타내는 정수를 사용합니다.
종료 성공
일반적으로 종료 상태 0은 성공 또는 프로그램의 성공적인 실행으로 인한 의도적 인 종료로 간주됩니다.
종료 실패
종료 상태 1은 실패로 간주되며 가장 일반적으로 프로그램이 어떤 이유로 종료되어야했으며 정상적인 프로그램 흐름에서 모든 것을 성공적으로 완료 할 수 없었 음을 의미합니다.
다음 은 종료 상태에 대해 설명 하는 GNU 리소스 입니다.
@Als가 언급했듯이 0과 1 대신 두 개의 상수를 사용해야합니다.
EXIT_SUCCESS
표준에 의해 0으로 정의됩니다.
EXIT_FAILURE
표준에 의해 하나로 제한되지는 않지만 많은 시스템이이를 하나로 구현합니다.
답변
exit(0)
프로그램이 오류없이 종료되었음을 나타냅니다. exit(1)
오류가 있음을 나타냅니다.
1
다른 종류의 오류를 구별하는 것 외에 다른 값을 사용할 수 있습니다 .
답변
차이점은 환경에 반환되는 값 0
이 전자의 경우와 1
후자의 경우입니다.
$ ./prog_with_exit_0
$ echo $?
0
$
과
$ ./prog_with_exit_1
$ echo $?
1
$
또한 매크로 값 EXIT_SUCCESS
과 함수에 EXIT_FAILURE
대한 인수로 사용되는 exit
것은 구현에 정의되어 있지만 일반적으로 각각 0
0이 아닌 숫자로 설정됩니다. (POSIX는 EXIT_SUCCESS
0이어야합니다). 그래서 보통 exit(0)
성공과 exit(1)
실패를 의미합니다 .
exit
function에서 인수가 있는 함수 호출 은 동일한 인수가 main
있는 명령문 return
과 동일합니다.
답변
exit는 호출되는 실행중인 프로세스를 완료하는 데 사용되는 시스템 호출입니다. 종료 할 매개 변수는 상위 프로세스에 하위 프로세스의 상태를 알리는 데 사용됩니다. 따라서 exit (0)은 프로세스의 성공적인 실행을 나타 내기 위해 사용 (그리고 자주 사용됨) 할 수 있고 exit (1)을 사용하여 오류를 표시 할 수 있습니다. 참조 링크
답변
exit(0)
처럼 행동 return 0
의 main()
기능 exit(1)
처럼 행동 return 1
. 이 표준은, 즉 main
기능 return 0
이 프로그램 아닌 값 수단은 오류의 일종으로 종료 동안 프로그램이 성공적으로 끝난 경우.
답변
exit (0)은 exit (EXIT_SUCCESS)와 같습니다.
exit (1)은 exit (EXIT_FAILURE)와 같습니다.
실패시 일반적으로 $?를 사용하여 쉘에서 찾을 수있는 프로세스를 종료하기 위해 양의 값이 리턴됩니다.
신호에 의해 종료 된 128보다 큰 값. 따라서 시그널로 종료 된 쉘 명령이 있으면 리턴 상태는 (128+ 신호 번호) 여야합니다.
예를 들면 :
쉘 명령이 SIGINT에 의해 종료되면 $? 130 (128 + 2) (여기서 2는 SIGINT의 신호 번호입니다. kill -l을 사용하여 확인하십시오)