출처  - http://molrayo.tistory.com/entry/Process-abort%ED%95%A8%EC%88%98%EC%97%90-%EA%B4%80%ED%95%9C-%EC%98%88%EC%A0%9C

 

#include<stdlib.h>

#include<process.h>

 

void abort(void);

 

리턴값

 - 함수 자체의 리턴 값은 없지만 이 함수에서 호출한 _exit 함수에서 exit 코드 3을 도스 또는 모 프로그램으로 리턴한다.

 

기능

 - 프로그램을 종료하되 비정상적으로 종료한다. 반면 exit 함수는 프로그램을 정상 종료한다.

abort 함수로 프로그램이 종료되면 stderr(화면)에 다음과 같은 메시지를 출력하며 _exit 함수를 호출하여 코드 3을 반환하면서 프로그램을 종료하게 된다.

 

abnormal program termination

 

참고 함수

exit => 프로그램을 정상 종료한다.

atexit, assert

 

 

예제

 

#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");
}

+ Recent posts