`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— 특정 신호에 대한 핸들러 실행(신호 발생)