신호 처리 조치 정의

다음 테이블은 SYSIFCOPT(*NOASYNCSIGNAL)이 컴파일 명령에서 지정되면 조치 정의 처리 및 C 신호 값의 초기 상태를 표시합니다. SIG_DFL은 항상 핸들러에 조건을 여과시킵니다. 재개는 예외가 처리되고 애플리케이션이 계속됨을 표시합니다.

표 1. 신호값을 위한 조치 정의 처리
신호값 초기 상태 SIG_DFL SIG_IGN 핸들러에서 리턴
SIGABRT1 SIG_DFL 여과 무시 재개
SIGALL2 SIG_DFL 여과 무시 재개
SIGFPE SIG_DFL 여과 무시3 재개4
SIGILL SIG_DFL 여과 무시3 재개4
SIGINT SIG_DFL 여과 무시 재개
SIGIO SIG_IGN 여과 무시 재개
SIGOTHER SIG_DFL 여과 무시3 재개4
SIGSEGV SIG_DFL 여과 무시3 재개4
SIGTERM SIG_DFL 여과 무시 재개
SIGUSR1 SIG_DFL 여과 무시 재개
SIGUSR2 SIG_DFL 여과 무시 재개
참고:
  • 1 raise() 함수 또는 abort() 함수에서만 신호를 보낼 수 있습니다.
  • 2 SIGALL은 raise() 함수에서 신호를 보낼 수 없습니다.
  • 3 신호의 값이 SIGFPE, SIGILL 또는 SIGSEGV의 경우 작동이 정의되지 않습니다.
  • 4 신호가 하드웨어에서 생성되면 작동이 정의되지 않습니다.

SYSIFCOPT(*ASYNCSIGNAL)가 컴파일 명령에서 지정되면 다음 테이블은 C 신호값의 초기 상태와 처리 조치 정의를 표시합니다.

표 2. 신호값을 위한 기본 작동
기본 조치 의미
SIGABRT 2 비정상 종료.
SIGFPE 2 오버플로, 0으로 나눔 및 유효하지 않은 조작과 같이 마스크되지 않은 산술 예외.
SIGILL 2 올바르지 않은 함수 이미지의 발견.
SIGINT 2 대화식 어텐션.
SIGSEGV 2 기억장치에 대한 올바르지 않은 액세스.
SIGTERM 2 프로그램에 전송된 요청 종료.
SIGUSR1 2 사용자 애플리케이션용입니다.
SIGUSR2 2 사용자 애플리케이션용입니다.
SIGALRM 2 alarm()으로 전송된 시간종료 신호.
SIGHUP 2 제어 터미널이 중단되거나 처리 프로세스가 종료됩니다.
SIGKILL 1 잡거나 무시할 수 없는 종료 신호.
SIGPIPE 3 읽히지 않는 파이프에 대한 쓰기.
SIGQUIT 2 터미널에 대한 종료 신호.
SIGCHLD 3 종료되거나 중단된 하위 프로세스. SIGCLD은 이 신호를 위한 별칭입니다.
SIGCONT 5 중단된 경우 계속됩니다.
SIGSTOP 4 잡거나 무시할 수 없는 종단 신호.
SIGTSTP 4 터미널을 위한 중단 신호.
SIGTTIN 4 제어 터미널에서 읽으려고 하는 백그라운드 프로세스.
SIGTTOU 4 제어 터미널에 쓰려고 하는 백그라운드 프로세스.
SIGIO 3 입력 또는 출력 완료.
SIGURG 3 고 대역폭 데이터가 소켓에 사용 가능합니다.
SIGPOLL 2 Pollable 이벤트.
SIGBUS 2 스펙 예외.
SIGPRE 2 프로그래밍 예외.
SIGSYS 2 나쁜 시스템 호출.
SIGTRAP 2 추적 또는 중단점 트랩.
SIGPROF 2 프로파일링 타이머가 만기되었습니다.
SIGVTALRM 2 가상 타이머가 만기되었습니다.
SIGXCPU 2 프로세서 시간 제한이 초과되었습니다.
SIGXFSZ 2 파일 크기 한계를 초과했습니다.
SIGDANGER 2 당장에 시스템이 충돌할 수 있습니다.
SIGPCANCEL 2 잡거나 무시할 수 없는 스레드 종료 신호.

기본 조치:

1
바로 프로세스를 종료합니다.
2
요청을 종료합니다.
3
신호를 무시합니다.
4
프로세스를 중단합니다.
5
현재 중단되면 프로세스를 계속합니다. 그렇지 않으면 신호를 무시합니다.