`SIGTERM`, `SIGSEGV`, `SIGINT`, `SIGILL`, `SIGABRT`, `SIGFPE` 매크로

SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE 매크로 (신호 타입들)

운영체제가 프로그램에 "뭔가 일이 생겼다"고 알려 줄 때 '신호(signal)'를 보내요. 그런데 어떤 일이 벌어졌는지에 따라 신호의 종류가 달라져야겠죠. C 표준은 그중 여섯 가지 대표 신호를 정수 상수로 정의해 두고 있어요. 각각이 무엇을 뜻하는지 알아 두면 예외 상황을 다루는 코드를 이해하는 데 큰 도움이 돼요.

출처: cppreference

본문

매크로 정의

<signal.h>에 정의돼 있어요.

#define SIGTERM /*implementation defined*/
#define SIGSEGV /*implementation defined*/
#define SIGINT  /*implementation defined*/
#define SIGILL  /*implementation defined*/
#define SIGABRT /*implementation defined*/
#define SIGFPE  /*implementation defined*/

설명 (Explanation)

위 매크로 상수들은 각각 서로 다른 값을 갖는 정수 상수 표현식으로 확장돼요. 이 값들은 프로그램에 보내지는 서로 다른 신호들을 나타내요.

상수 설명
SIGTERM 종료 요청(termination request), 프로그램에 보내짐
SIGSEGV 잘못된 메모리 접근(세그멘테이션 오류, segmentation fault)
SIGINT 외부 인터럽트, 보통 사용자가 발생시킴
SIGILL 잘못된 명령어 같은 잘못된 프로그램 이미지
SIGABRT 비정상 종료 조건, 예를 들어 abort()가 발생시킨 경우
SIGFPE 0으로 나누기 같은 잘못된 산술 연산

같이 보기 (See also)

  • signal — 특정 신호에 대한 핸들러 설정
  • raise — 특정 신호에 대한 핸들러 실행(신호 발생)