program — 프로그램 지원 유틸리티
program — 프로그램 지원 유틸리티 (Program support utilities)
**프로그램 지원 유틸리티(program support utilities)**는 프로그램 종료와 자원 정리를 관리하는 함수들을 제공해요. 주로 <cstdlib>, <csignal> 헤더에 있어요.
출처: cppreference
본문
프로그램 종료 (Program termination)
| 함수 | 설명 |
|---|---|
std::abort |
비정상 종료 (정리 없이) |
std::exit |
정상 종료 (atexit 핸들러 호출) |
std::_Exit |
즉시 종료 (일부 정리 생략) |
std::quick_exit |
빠른 종료 (quick_exit 핸들러) |
std::atexit |
정상 종료 시 호출 함수 등록 |
std::at_quick_exit |
quick_exit 시 호출 함수 등록 |
신호 (Signals, <csignal>)
| 함수 | 설명 |
|---|---|
std::signal |
신호 처리기 설정 |
std::raise |
신호 발생 |
#include <cstdlib>
#include <iostream>
void cleanup() { std::cout << "cleanup\n"; }
int main() {
std::atexit(cleanup); // 정상 종료 시 호출 등록
// ...
std::exit(0); // 정상 종료 — cleanup 실행
// std::abort(); // 비정상 — cleanup 미실행
}
종료 함수 비교
| 함수 | atexit 핸들러 | static 소멸자 | 즉시성 |
|---|---|---|---|
std::exit |
실행 | 실행 | 정상 |
std::quick_exit |
실행(quick) | 미실행 | 빠름 |
std::_Exit |
미실행 | 미실행 | 즉시 |
std::abort |
미실행 | 미실행 | 비정상 |
프로그램 종료 상태
return/exit의 값이 호스트에 전달돼요. EXIT_SUCCESS(0), EXIT_FAILURE 등을 써요.
#include <cstdlib>
return EXIT_SUCCESS; // 0
프로그램 지원 유틸리티는 프로그램의 수명주기(종료·정리·신호)를 관리하는 표준 함수 모음이에요.