SIGNAL ERROR 정의 및 설명
|
SIGNAL ERROR 정의 및 설명
The
Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
http://en.wikipedia.org/wiki/SIGABRT
Some of the functionality described on this reference page extends the ISO C standard. Applications shall define the appropriate feature test macro (see the System Interfaces volume of IEEE Std 1003.1-2001, Section 2.2, The Compilation Environment) to enable the visibility of these symbols in this header.
Signal |
Default Action |
Description |
SIGABRT |
A |
Process abort signal. 시그널은 프로그램 그 자체와 abort가 호출되었음을 보고함으로써 발생되는 에러를 지적한다 |
SIGALRM |
T |
Alarm clock. 시그널은 전형적으로 실제또는 클럭 시간을 계산한 타이머의 경과를 지적한다 |
SIGBUS |
A |
Access to an undefined portion of a memory object. 시그널은 유용하지 않은 포인터가 비참조되었을 때 발생 |
SIGCHLD |
I |
Child process terminated, stopped, |
[XSI] |
|
or continued. |
SIGCONT |
C |
Continue executing, if stopped. |
SIGFPE |
A |
Erroneous arithmetic operation. 시그널은 심각한 산술적 에러를 보고한다. 그 이름이 "floating-point exception"에서 유래된것이라 할지라도, 이 시그널은 실제로는 모든 산술적 에러들에 작용한다. |
SIGHUP |
T |
Hangup. 시그널은 사용자 터미널의 단절을 보고하기 위해 사용되어지는데, 아마도 네트웍이나 전화선 연결이 끊어졌기 때문이다 |
SIGILL |
A |
Illegal instruction. 오직 유용한 명령어만이 발생된 C 컴파일러에서, SIGILL은 전형적으로 실행 가능 파일이 훼손되었거나, 당신이 데이터를 실행하려 시도했다는 것을 지적한다 |
SIGINT |
T |
Terminal interrupt signal. 시그널은 사용자가 INTR 문자를 (보통 C-c)을 입력했을 때 보내어진다 |
SIGKILL |
T |
Kill (cannot be caught or ignored). 시그널은 즉각적인 프로그램 종료를 일으키기 위해서 사용되어진다 |
SIGPIPE |
T |
Write on a pipe with no one to read it. |
SIGQUIT |
A |
Terminal quit signal. 시그널은 다른 키_QUIT 문자, 보통 C-\_에 의해서 제어된다는 것을 제외하고는 SIGINT와 유사하고, 그 프로세스가 종료 될 때 프로그램 에러 시그널처럼 코어 파일을 작성한다 |
SIGSEGV |
A |
Invalid memory reference. 시그널은 할당된 메모리의 범위를 벗어나는곳에서 읽거나, 쓰기를 시도할 때 발생 된다 |
SIGSTOP |
S |
Stop executing (cannot be caught or ignored). |
SIGTERM |
T |
Termination signal. 시그널은 프로그램을 종료하는데 사용하는 포괄적인 시그널이다 |
SIGTSTP |
S |
Terminal stop signal. |
SIGTTIN |
S |
Background process attempting read. |
SIGTTOU |
S |
Background process attempting write. |
SIGUSR1 |
T |
User-defined signal 1. |
SIGUSR2 |
T |
User-defined signal 2. |
[XSI] SIGPOLL |
T |
Pollable event. |
SIGPROF |
T |
Profiling timer expired. |
SIGSYS |
A |
Bad system call. |
SIGTRAP |
A |
Trace/breakpoint trap. |
SIGURG |
I |
High bandwidth data is available at a socket. |
[XSI] SIGVTALRM |
T |
Virtual timer expired. |
SIGXCPU |
A |
CPU time limit exceeded. |
SIGXFSZ |
A |
File size limit exceeded. |
Signal |
Code |
Reason |
[XSI] SIGILL |
ILL_ILLOPC |
Illegal opcode. |
|
ILL_ILLOPN |
Illegal operand. |
|
ILL_ILLADR |
Illegal addressing mode. |
|
ILL_ILLTRP |
Illegal trap. |
|
ILL_PRVOPC |
Privileged opcode. |
|
ILL_PRVREG |
Privileged register. |
|
ILL_COPROC |
Coprocessor error. |
|
ILL_BADSTK |
Internal stack error. |
SIGFPE |
FPE_INTDIV |
Integer divide by zero. |
|
FPE_INTOVF |
Integer overflow. |
|
FPE_FLTDIV |
Floating-point divide by zero. |
|
FPE_FLTOVF |
Floating-point overflow. |
|
FPE_FLTUND |
Floating-point underflow. |
|
FPE_FLTRES |
Floating-point inexact result. |
|
FPE_FLTINV |
Invalid floating-point operation. |
|
FPE_FLTSUB |
Subscript out of range. |
SIGSEGV |
SEGV_MAPERR |
Address not mapped to object. |
|
SEGV_ACCERR |
Invalid permissions for mapped object. |
SIGBUS |
BUS_ADRALN |
Invalid address alignment. |
|
BUS_ADRERR |
Nonexistent physical address. |
|
BUS_OBJERR |
Object-specific hardware error. |
SIGTRAP |
TRAP_BRKPT |
Process breakpoint. |
|
TRAP_TRACE |
Process trace trap. |
SIGCHLD |
CLD_EXITED |
Child has exited. |
|
CLD_KILLED |
Child has terminated abnormally and did not create a core file. |
|
CLD_DUMPED |
Child has terminated abnormally and created a core file. |
|
CLD_TRAPPED |
Traced child has trapped. |
|
CLD_STOPPED |
Child has stopped. |
|
CLD_CONTINUED |
Stopped child has continued. |
SIGPOLL |
POLL_IN |
Data input available. |
|
POLL_OUT |
Output buffers available. |
|
POLL_MSG |
Input message available. |
|
POLL_ERR |
I/O error. |
|
POLL_PRI |
High priority input available. |
|
POLL_HUP |
Device disconnected. |
[CX] Any |
SI_USER |
Signal sent by kill(). |
|
SI_QUEUE |
Signal sent by the sigqueue(). |
|
SI_TIMER |
Signal generated by expiration of a timer set by timer_settime(). |
|
SI_ASYNCIO |
Signal generated by completion of an asynchronous I/O request. |
|
SI_MESGQ |
Signal generated by arrival of a message on an empty message queue. |
SIGNAL
설명
리눅스는 아래 나열된 시그널을 지원한다. 몇몇 개의 시그널 번호는 아키텍쳐 의존적이다. 먼저 POSIX.1에서 설명하는 시그널이다.
시그널 |
번호 |
행동 |
설명 |
SIGINT |
2 |
A |
키보드로부터의 인터럽트(interrupt) 시그널 |
SIGQUIT |
3 |
C |
키보드로부터의 종료(quit) 시그널 |
SIGILL |
4 |
C |
잘못된 명령어(Illegal Instruction) |
SIGABRT |
6 |
C |
abort(3)로부터의 중단(abort) 시그널 |
SIGFPE |
8 |
C |
부동 소수점 예외(exception) |
SIGKILL |
9 |
AEF |
kill 시그널 |
SIGSEGV |
11 |
C |
잘못된 메모리 참조 |
SIGPIPE |
13 |
A |
깨진 파이프: 수신자가 없는 파이프에 쓰기 |
SIGALRM |
14 |
A |
alarm(2)으로부터의 타이머 시그널 |
SIGTERM |
15 |
A |
종료(termination) 시그널 |
SIGUSR1 |
30,10,16 |
A |
사용자 정의 시그널 1 |
SIGUSR2 |
31,12,17 |
A |
사용자 정의 시그널 2 |
SIGCHLD |
20,17,18 |
B |
자식 프로세스가 중단 또는 종료 |
SIGCONT |
19,18,25 |
중단되었다면 재개(continue) |
|
SIGSTOP |
17,19,23 |
DEF |
프로세스 중단 |
SIGTSTP |
18,20,24 |
D |
터미널에서의 중단 시그널 |
SIGTTIN |
21,21,26 |
D |
백그라운드 프로세스에 대한 터미널 입력 |
SIGTTOU |
22,22,27 |
D |
백그라운드 프로세스에 대한 터미널 출력 |
다음은 POSIX.1의 시그널은 아니지만 SUSv2에서 설명하고 있는 것이다.
시그널 |
번호 |
행동 |
설명 |
SIGPOLL |
A |
폴링(poll) 이벤트 (Sys V). SIGIO와 같다. |
|
SIGPROF |
27,27,29 |
A |
프로파일링(profiling) 타이머 시그널 |
SIGSYS |
12,-,12 |
C |
루틴에 잘못된 인자 (SVID) |
SIGTRAP |
5 |
C |
trace/breakpoint 트랩 |
SIGURG |
16,23,21 |
B |
소켓에 대한 긴급(urgent) 상황 (4.2 BSD) |
SIGVTALRM |
26,26,28 |
가상 알람 클럭 (4.2 BSD) |
|
SIGXCPU |
24,24,30 |
C |
CPU 시간 제한 초과 (4.2 BSD) |
SIGXFSZ |
25,25,31 |
C |
파일 크기 제한 초과 (4.2 BSD) |
(SIGSYS, SIGXCPU, SIGXFSZ와 몇몇 아키텍쳐에서는 SIGBUS의 기본 행동은 SUSv2에서 C(종료와 코어 덤프)로 나와있지만 현재 리눅스(2.3.27)에서 까지는 A(종료)이다)
다음은 여러 가지 다른 시그널.
시그널 |
번호 |
행동 |
설명 |
SIGEMT |
7,-,7 |
||
SIGSTKFLT |
-,16,- |
보조프로세서의 스택 오류 |
|
SIGIO |
23,29,22 |
A |
현재 I/O가 가능 (4.2 BSD) |
SIGCLD |
-,-,18 |
SIGCHLD와 같다. |
|
SIGPWR |
29,30,19 |
A |
전원 문제 (System V) |
SIGINFO |
29,-,- |
SIGPWR와 같다. |
|
SIGLOST |
-,-,- |
A |
파일 락(lock) 손실 |
SIGWINCH |
28,28,20 |
B |
윈도우 크기 변경 시그널 (4.3 BSD, Sun) |
SIGUNUSED |
-,31,- |
A |
사용되지 않는 시그널 (SIGSYS가될 것이다) |
(여기서 -는 시그널이 없음을 나타낸다; 세 가지 값이 있다. 첫번째 것은 대개 alpha와 sparc에서, 중간의 것은 i386, ppc와 sh에서, 마지막 것은 mips에서 유효한 값이다. 29번 시그널은 alpha에서는 SIGINFO / SIGPWR이지만 sparc에서는 SIGLOST이다.)
"행동" 컬럼의 문자는 다음과 같은 의미이다:
A 기본 행동이 프로세스를 종료하는 것이다.
B 기본 행동이 시그널을 무시하는 것이다.
C 기본 행동이 프로세스를 종료하고 코어를 덤프한다.
D 기본 행동이 프로세스를 멈추는 것이다.
E 핸들러를 둘 수 없는 시그널이다.
F 무시할 수 없는 시그널이다.
|
'개발관련' 카테고리의 다른 글
Linux Error 종류 및 코드값 (0) | 2014.11.23 |
---|---|
블루투스 Service Discovery Protocol(SDP) UUID (0) | 2014.11.23 |
Reverse Engineering ODEX to DEC (0) | 2014.04.08 |
이클립스 개발 팁 알아보기 (0) | 2014.03.19 |
단계별 예제로 배우는 안드로이드 프로그래밍 동영상강좌 (0) | 2014.03.13 |