2012. 7. 13. 16:13
abort() 함수는 현재 상태를 코어 덤프하고 프로세스를 비정상적으로 종료(abort(),시그널)하는 함수 이고
exit() 함수는 정상적으로 종료(exit, return)하는 함수이다. 이처럼 프로세스의 종료는 정상적인 종료와 비정상
적인 종료로 구분되며 비정상 종료일 때는 atexit() 에 등록된 함수는 실행되지 않는다.
#include <stdio.h>
#include <stdlib.h>
void func(void);
main(int argc, char *argv[])
{
atexit(func);
/* atoi는 정수 형태의 문자열을 정수로 변환하는 함수로 argv[1]이 "1"이면 1로 변환.
argv[1]이 "0"이 되어야 if 조건이 참이 됨 */
if(!atoi(argv[1]))
/* 비정상적으로 프로세스를 종료하는데 atexit에 의해 등록된 함수는 실행되지 않음 */
abort();
exit(0); /* 정상적으로 프로세스를 종료하는데 atexit에 의해 등록된 함수가 실행 됨 */
}
void func(void)
{
printf("run function\n");
}
'EMBEDDED > SYSTEM Proc' 카테고리의 다른 글
[Process] waitpid() 함수에 관한 예제 (0) | 2012.07.13 |
---|---|
[Process] wait()에 관한 예제 (0) | 2012.07.13 |
[Process] atexit() 함수에 관한 예제 (0) | 2012.07.13 |
[Process] exit()함수에 관한 예제 (0) | 2012.07.13 |
[Procsee] vfork()에 관한 예제 (0) | 2012.07.13 |