program_raise — std::raise
program_raise — std::raise
std::raise는 프로그램에 신호(signal) sig를 보낸다. <csignal> 헤더에 있어요.
std::signal()로 지정된 신호 처리기가 호출돼요.
출처: cppreference
본문
// <csignal> 헤더
int raise( int sig );
사용 예
#include <csignal>
#include <iostream>
void handler(int) { std::cout << "signal caught\n"; }
int main() {
std::signal(SIGINT, handler); // 처리기 등록
int r = std::raise(SIGINT); // 신호 발생 → handler 호출
// r == 0 (성공)
}
특징
- 지정된 신호를 프로그램에 보내 처리기를 호출해요.
- 성공 시 0, 실패 시 0이 아닌 값.
- 주로
SIGABRT,SIGINT,SIGTERM,SIGSEGV등을 다뤄요.
#include <csignal>
// 인터럽트 신호 보내기
std::raise(SIGABRT); // 중단 신호
표준 신호:
SIGABRT— 비정상 중단SIGFPE— 부동 소수점 오류SIGILL— 잘못된 명령SIGINT— 인터럽트 (Ctrl-C)SIGSEGV— 세그멘테이션 오류SIGTERM— 종료 요청
std::raise는 프로그램 내에서 신호를 발생시켜 처리기를 직접 트리거할 때 사용해요. 비동기 신호 처리의 동작에 주의해야 해요.