Namespaces
Variants

abort

From cppreference.net
헤더 파일에 정의됨 <stdlib.h>
void abort ( void ) ;
(C11 이전)
_Noreturn void abort ( void ) ;
(C11 이후)
(C23 이전)
[ [ noreturn ] ] void abort ( void ) ;
(C23 이후)

SIGABRT 신호가 signal에 전달된 시그널 핸들러에 의해 catch되고 핸들러가 반환되지 않는 경우를 제외하고, 비정상적인 프로그램 종료를 유발합니다.

atexit() 에 전달된 함수들은 호출되지 않습니다. 파일과 같은 열린 리소스들이 닫히는지 여부는 구현에 따라 정의됩니다. 호스트 환경으로 반환되는 구현 정의 상태는 실행이 성공적이지 않았음을 나타냅니다.

목차

매개변수

(없음)

반환값

(없음)

참고 사항

POSIX는 명시합니다 abort() 함수가 SIGABRT 신호의 차단 또는 무시를 재정의한다고.

일부 컴파일러 내장 함수, 예를 들어 __builtin_trap (gcc, clang, 및 icc) 또는 __fastfail / __debugbreak (msvc)는 프로그램을 가능한 한 빠르게 종료하는 데 사용될 수 있습니다.

예제

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
        fprintf(stderr, "error opening file data.txt in function main()\n");
        abort();
    }
    /* Normal processing continues here. */
    fclose(fp);
    printf("Normal Return\n");
    return 0;
}

출력:

error opening file data.txt in function main()

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.22.4.1 abort 함수 (p: 255)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.22.4.1 abort 함수 (p: 350)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.20.4.1 abort 함수 (p: 315)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.10.4.1 abort 함수

참고 항목

정리 작업을 수행하며 프로그램을 정상 종료시킴
(함수)
exit() 호출 시 실행될 함수를 등록함
(함수)
완전한 정리 작업 없이 프로그램을 정상 종료시킴
(함수)