[C] exit() 함수 (main()에서 return과의 차이)

bokyungkim·2021년 8월 27일
1

exit() 함수

일반적으로 프로세스를 종료할 때 return문을 사용한다. 그리고 exit() 함수를 사용하기도 한다. return문exit() 함수를 사용하는 것은 시스템의 입장에서 보았을 때 동일하다.

void exit(int status)
  • 헤더: stdlib.h
  • 인자: int status (호스트 환경에게 알려줄 종료 값)
  • 반환: 없음

함수 특징

  1. exit 함수는 정상적으로 프로세스를 종료하는 함수이다.
  2. 종료하기 전에 모든 열려진 파일들을 자동으로 닫는다.
  3. 출력 버퍼 속에 데이터가 있으면 그것을 쓰기 완료시킨다.
  4. 주로 에러가 났을 때 강제 종료시키기 위해 if문 속에서 사용된다.
  5. exit의 입력 인자로 전달하는 status는 운영체제에 전달하며 main함수의 return값과 같은 역할이다.
  6. status 값은 에러 코드와 같으므로 정상 종료시 0을, 에러로 인한 종료시 0이 아닌 숫자, 대체로 1을 반환한다.

main()에서 exit과 return의 차이

  • main() 함수에서 return 하는 것 == exit(0)
  • exit()commit과 같이 현재 C 언어로 작성된 프로세스 내 파일 입출력 중인 것을 저장함과 동시에 프로세스 종료하며 운영체제에게 권한을 넘긴다.
  • return은 일반 함수 속에서 return문을 사용하면 그 함수만 종료되지만, main() 함수 속의 return문은 프로그램 전체를 중지시킨다.
  • 정리하면 exit() 함수바로 프로세스 종료
  • return뒤 문장을 실행하며 종료



📚참고
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=mokdonjr&logNo=220813555163

0개의 댓글