'exit 함수'에 해당되는 글 1건

  1. 2013.02.15 atexit 함수, exit 함수, abort 함수 2

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
Posted by scii
: