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는 프로그램 내에서 신호를 발생시켜 처리기를 직접 트리거할 때 사용해요. 비동기 신호 처리의 동작에 주의해야 해요.

더 알아보기 (Learn more)

cppreference