C \ C++/C 개념 정리

C언어 exit(0), exit(1) 함수 개념 정리

안정민 2023. 4. 8. 11:12

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 라는 에러가 발생합니다.