-
카테고리
-
세부 분야
시스템
-
해결 여부
해결됨
main 함수를 종료 할 때 반환값에 따른 차이가 존재하나요?
19.11.25 17:06 작성 조회수 121
1
일반적인 프로그램에서 main 함수는 return 0을 함으로써 종료하는데,
강의 중에 에러 상황에서는 -1을 반환하면서 프로그램을 종료시키는데
0과 -1의 반환 값의 차이로 인해 그것을 활용하는 무언가가 존재하기 때문에 이와 같은 방식을 사용하는 것인지 궁금합니다.
답변을 작성해보세요.
1
ProgCoach4U
지식공유자2019.11.27
main함수에서 리턴하는 값은 exit code라 하여 프로그램이 실행된 후 종료하면서 어떤 코드값을 남길 수 있게 하는 것입니다. 프로그램 어디에서든 exit()API를 이용할 수도 있습니다. 주로 이 프로그램을 invoke한 부모 프로세스에서 exit code를 보고 성공 실패 여부 확인 및 실패시 어떤 이유로 실패했는지 판단할 수 있습니다.
system() API를 통해 어떤 프로그램을 구동시킨 후, 자식 프로세스가 리턴한 exit code는 WEXITSTATUS()으로 받아올 수 있습니다.(man 3 system 참조하세요)
bash에서 프로그램을 실행한 경우, 직전에 실행한 커맨드의 exit code는 $? 변수에 저장하게 되어 있습니다. 따라서 echo $? 명령을 하면 직전에 실행한 커맨드의 exit code를 받아올 수 있습니다.
더 궁금한 점 있으시면 추가 댓글 달아주세요~답변이 늦어져 죄송합니다 ㅠ
답변 1