C언어 exit(0), exit(1) 함수 개념 정리
exit()함수는 stdlib.h 헤더파일을 include하여 사용.
commit과 같이 현재 C언어로 작성된 프로세스내 파일 입출력 중인 것을 저장 + 함과 동시에
프로세스를 모두 종료하며 운영체제에게 권한을 넘긴다.
exit(0)은 '정상종료', exit(1)은 '에러메시지 종료'
(각각 EXIT_SUCCESS, EXIT_FAILURE 로 미리 정의되어 있기 때문)
return 은 일반 함수 속에서 return 문을 사용하면 그 함수만 종료되지만,
main() 함수 속의 return 문은 프로그램 전체를 중지시킵니다.
main() 함수에서 return하는 것 = exit(0) 같다.
둘의 차이는
exit()함수는 바로 프로세스 종료.
return 은 뒤 문장을 실행하며 종료.
C에서 exit() 이라는 함수는, 현재의 C프로그램 자체를 완전 종료하는 기능을 가집니다. 주로, 에러가 났을 때 강제 종료시키기 위해 if문 속에서 사용됩니다. 종료하기 전에 또한 "모든 열려진 파일"들을 자동으로 닫습니다. 출력 버퍼 속에 데이터가 있으면 그것을 쓰기 완료시킵니다. 즉, 모든 것을 잘 정리해 놓고 종료합니다.
그리고 exit(123) 이렇게 괄호 속에 int형 정수 숫자를 넣어주면 그 숫자를 운영체제에 반환합니다. 즉 "에러 코드"를 반환합니다. 에러 없이 정상 종료할 때에는 exit(0) 이렇게 0을 반환하고, 에러가 나서 종료할 때에는 0이 아닌 숫자, 대체로 1을 반환합니다.
exit() 함수를 사용하기 위해서는 stdlib.h 헤더파일을 인클루드해 주어야 합니다. 그렇지 않으면 error C3861: 'exit': identifier not found 라는 에러가 발생합니다.