atexit 함수, exit 함수, abort 함수
Programming/C 2013. 2. 15. 02:51 |atexit 함수와 유사 부류의 함수들.
atexit 함수.
#include <stdlib.h>
int atexit(void (*func)(void));
함수 호출 성공 시 0, 실패 시 0 아닌 값 반환.
반환형과 매개변수 형이 void로 선언된 함수의 이름이(주소 값이) atexit함수의 인자로 전달되어야 한다. 그리고 이렇게 인자로 전달된 함수가 프로그램 종료 시 자동으로 호출되며, 이렇게 자동으로 호출되어야 할 함수는 32개 이상 등록할 수 있다.
※ atexit 함수의 특성: 등록된 순서의 역순으로 호출된다. 그리고 atexit 함수를 통해서 등록된 함수는 프로그램이 정상적으로 종료될 때에만 호출된다.
exit 함수와 abort 함수.
#include <stdlib.h>
void exit(int status);
void abort(void);
두 함수 모두 실행중인 프로그램을 종료시킨다.
abort 함수는 프로그램의 오류로 인한 비정상적 종료를 의미.
즉, abort 함수는 프로그램 자체에 아주 치명적인 오류가 발생해서 어쩔수 없이 프로그램을 종료해야만 하는 경우에 호출하도록 정의된 함수이다. 때문에 이 함수가 호출이 되면, 운영체제에서 특별한 액션을 취해준다.
exit 함수는 프로그램의 정상적 종료도, 비정상적 종료도 나타낼 수 있는 함수이다. 일반적으로 정상적으로 종료하는 경우에는 정수 0을, 그리고 비정상적으로 종료하는 경우에는 0이 아닌 값을 인자로 전달하면서 exit함수를 호출한다. 그리고 0과 1을 대신해서 각각 다음을 인자로 전달해도 된다.
⊙ EXIT_SUCCESS -> 0
⊙ EXIT_FAILURE -> 1
이 둘은 매크로로 정의 된 상수이다. 각각 0과 1을 의미한다.
그리고 exit 함수를 호출하면서 인자로 전달하는 값은 main 함수에서 return 문을 통해 반환하는 값과 동일한 의미를 지닌다.
※ 두 함수 모두 운영체제로 값이 넘어가서 프로그램의 정상 종료 여부를 판단하는데 사용된다.
'Programming > C' 카테고리의 다른 글
qsort 함수 사용법 (0) | 2013.02.15 |
---|---|
qsort (Quick Sort) 함수. (0) | 2013.02.15 |
함수 포인터를 반환하는 함수의 정의 (0) | 2013.02.15 |
함수 포인터 (0) | 2013.02.15 |
메모리 컨트롤 함수. memmove, memcpy (0) | 2013.02.15 |