C에서 출구 (0)과 출구 (1)의 차이점은 무엇입니까?
누구든지 말해 줄 수 있습니까? 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
로 설정됩니다. (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을 사용하여 확인하십시오)
실행 파일이 종료 (종료)되면 실행 한 셸에 값을 반환합니다. exit(0)
일반적으로 모든 것이 잘되고 exit(1)
있음을 잘 틀림 없습니다.
exit ()는 항상 정수 값으로 호출해야하며 0이 아닌 값은 오류 코드로 사용됩니다.
참고 항목 : exit () 함수 사용
exit(0)
프로그램 (프로세스)이 종료됨을 의미합니다.
exit(1)
프로그램에서 종료되지 않습니다.
관찰 관찰 예측 Unix에서 신호 처리 및 프로세스 관리를 알아야합니다.
sigaction
, watipid()
..for () ... such .... API ........... 에 대해 알고 있습니다 .
참고 URL : https://stackoverflow.com/questions/9944785/what-is-the-difference-between-exit0-and-exit1-in-c
'IT' 카테고리의 다른 글
emacs 확대 / 축소 (0) | 2020.10.08 |
---|---|
JTA와 로컬 트랜잭션의 차이점은 무엇입니까? (0) | 2020.10.08 |
Angular UI 모달의 범위 문제 (0) | 2020.10.08 |
assetic : dump와 assets : 설치의 차이점 (0) | 2020.10.08 |
Rx Observable에서 어떻게 ʻawait` 할 수 있습니까? (0) | 2020.10.08 |