태그: abort 함수

void abort(void); SIGABRT 시그널을 발생하는 함수

입력 매개 변수 리스트

없음

반환 값

없음

 

abrot 함수는 SIGABRT 시그널을 발생하는 함수로 raise(SIGABRT)와 같은 역할을 수행합니다. SIGABRT는 프로세스가 비정상적인 상태에 도달했을 때 강제로 프로세스를 종료하기 위한 시그널입니다. 만약 프로그램에 SIGABRT 시그널 핸들러를 등록하면 다른 방식으로 처리할 수 있습니다. 참고로 Microsoft Visual C에서는 abort 함수를 호출하면 SIGABRT 시그널을 발생하는 것 외에도 오류 창을 띄웁니다. 만약 abort 함수를 호출할 때 SIGABRT 시그널만 발생하고 오류 창을 뜨지 않게 하려면 _set_abort_behavior( 0, _WRITE_ABORT_MSG);를 호출합니다.

다음의 예제 코드에서는 _set_abort_behavior( 0, _WRITE_ABORT_MSG);를 호출하여 abort 함수 호출 시 오류 창이 뜨는 것을 방지하였습니다. 그리고 초기에 SIGABRT 시그널 핸들러를 등록한 후 abort 함수를 두 번 호출합니다. 그리고 SIGABRT 시그널 핸들러에서는 발생한 시그널이 SIGABRT일 때 디폴트 시그널 핸들러로 설정합니다. 따라서 실제 실행하면 첫번째 SIGABRT 시그널이 발생하면 등록한 시그널 핸들러가 동작하지만 두번째 SIGABRT 시그널이 발생하면 디폴트 행위가 동작합니다. SIGABRT 시그널의 디폴트 행위는 프로세스 강제 종료입니다.

사용 예

출력