program_abort — std::abort

program_abort — std::abort

std::abort프로그램을 비정상 종료(abnormal termination)시킨다. <cstdlib> 헤더에 있어요.

SIGABRT가 신호 처리기에 잡히지 않는 한, 프로그램을 비정상 종료시켜요.

출처: cppreference

본문

// <cstdlib> 헤더
[[noreturn]] void abort() noexcept;   // C++11+

동작

  • 프로그램을 비정상적으로 종료해요.
  • 정상 종료 함수(atexit 등록된 핸들러)는 호출되지 않아요.
  • 임시 객체 소멸자·정적 소멸자도 실행되지 않아요.
  • SIGABRT 신호가 발생하고, 처리기가 없으면 구현 정의 방식으로 종료돼요.

사용 예

#include <cstdlib>

void fatal_error() {
    std::abort();   // 즉시 비정상 종료
}

특징

  • 즉시 종료 — 정리(smettling) 없이 끝냄.
  • 심각한 오류·불변식 위반 시 디버깅용으로 쓰여요.
  • 반환하지 않는 [[noreturn]].
// 치명적 상태에서
if (critical_invariant_broken) {
    std::abort();   // 정리 없이 즉시 종료
}

std::abort는 프로그램을 정리 없이 즉시 비정상 종료시키는 함수예요. 정상 종료는 std::exit, 자원 정리가 필요하면 std::_Exit 등을 써요.

더 알아보기 (Learn more)

cppreference