IT

C에서 출구 (0)과 출구 (1)의 차이점은 무엇입니까?

lottoking 2020. 10. 8. 07:28

C에서 출구 (0)과 출구 (1)의 차이점은 무엇입니까?


누구든지 말해 줄 수 있습니까? C 언어에서 exit(0)의 차이점은 exit(1)무엇입니까?


C 언어에서 exit(0)의 차이점은 exit(1)무엇입니까?

exit(0)성공적인 프로그램 종료를 성공적으로 이식 가능하며
exit(1)(일반적으로) 확장이지 않은 종료를 나타냅니다. 그러나 사용은 아닙니다.

C 표준은 C 프로그램에서 종료 상태를 정의 EXIT_SUCCESS하고 EXIT_FAILURE반환합니다.

0EXIT_SUCCESS성공적인 종료를 나타 내기 위해 표준에 의해 지정된 값이며, 단, EXIT_FAILUREunsucessful 종료를 반환하기위한 표준 값입니다. 1그래도 많은 구현에서 동일하게 사용됩니다.


참고 :

C99 표준 : 7.20.4.3 exit5 항 기능

마지막으로 제어가 호스트 환경으로 반환됩니다. 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_SUCCESS0이어야합니다). 그래서 보통 exit(0)성공과 exit(1)실패를 의미합니다 .

exitfunction에서 인수가 있는 호출 함수는 동일한 인수가 main있는 명령문 return과 동일합니다.


exit는 호출되는 실행중인 프로세스를 완료하는 데 사용되는 시스템 호출입니다. 종료 할 다음 변수는 상위 프로세스에 하위 프로세스의 상태를 알리는 데 사용됩니다. 따라서 exit (0)은 프로세스의 성공적인 실행을 나타냅니다. 내기 위해 사용 (그리고 자주 사용됨) 할 수 있고 exit (1)을 사용하여 오류를 표시 할 수 있습니다. 참조 링크


exit(0)처럼 행동 return 0main()기능 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