#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");
}
'IT > C&C++' 카테고리의 다른 글
[C] memcmp 두개의 메모리 변수에 대한 내용 비교 (0) | 2016.04.15 |
---|---|
-펌- [C] 프로그램 파라미터를 처리하는 getopt() 사용법 (0) | 2016.03.25 |
-펌-[C] system함수, exec계열의 함수(execl, execv, execle, execve, execlp, execvp) (0) | 2016.03.25 |
-펌-[C] fork() 함수에 대해서.. (0) | 2016.03.25 |
-펌-[C]fseek(), ftell(), fread(), fwrite() (0) | 2016.03.25 |