GB | BIG5
|
| 首頁 > 編程技術 > 其它 > 正文 |
 |
| signal的全集和信號handler |
| http://www.linpus.com.tw (2001-06-29 14:08:00) |
#define SIGHUP 1
進程由於控制終端死去或者控制終端發出起命令
#define SIGINT 2
鍵盤中斷所產生的信號
#define SIGQUIT 3
鍵盤終止
#define SIGILL 4
非法的指令
#define SIGTRAP 5
進程遇到一個追蹤(trace)或者是一個中斷嵌套
#define SIGABRT 6
由abort系統調用所產生的中斷信號
#define SIGIOT 6
類似於SIGABRT
#define SIGBUS 7
進程試圖使用不合理的記憶體
#define SIGFPE 8
浮點異常
#define SIGKILL 9
KILL
#define SIGUSR1 10
用戶自定義
#define SIGSEGV 11
段錯誤
#define SIGUSR2 12
用戶自定義
#define SIGPIPE 13
管道操作時沒有讀只寫
#define SIGALRM 14
由alarm系統調用產生的timer時鐘信號
#define SIGTERM 15
收到終端信號的進程
#define SIGSTKFLT 16
堆疊錯誤
#define SIGCHLD 17
子進程向父進程發出的子進程已經stop或者終止的信號
#define SIGCONT 18
繼續運行的信號
#define SIGSTOP 19
stop
#define SIGTSTP 20
鍵盤所產生的stop信號
#define SIGTTIN 21
當運行在後狀態時卻需要讀取stdin的資料
#define SIGTTOU 22
當運行在後狀態時卻需要寫向stdout
#define SIGURG 23
socket的緊急情況
#define SIGXCPU 24
進程超額使用CPU分配的時間
#define SIGXFSZ 25
進程使用了超出系統規定文件長度的文件
#define SIGVTALRM 26
內部的alarm時鐘過期
#define SIGPROF 27
在一個程式段中描繪時鐘集過期
#define SIGWINCH 28
終端視窗的改變
#define SIGIO 29
非同步IO
#define SIGPOLL SIGIO
pollable事件發生
如何去冊一個信號handler?
首先,用sigprocmask設置或者更改信號mask,如果信號mask沒有被設置,所有的信號採用預設的
方式處理,一旦設置了mask,就使用sigaction俘獲信號
int sigprocmask(int how,const sigset_t,sigset_t *oldset);
how有以下值:
SIG_BLOCK 集合中包含額外的信號需要阻塞
SIG_UNBLOCK 集合中包含額外的信號需要不阻塞
SIG_SETMASK 集合中包含新的信號mask
struct sigaction{
void (*sa_handler)(int);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
};
*sa_handler指向信號處理的函數,sa_handler的參數可以是SIG_DFL,
,啟動信號處理的預設值,如果是SIG_IN,將忽略信號.
信號處理的過程中,需要使用sa_mask定義一套需要遮罩的信號
sa_flags是改變sa_handler行為的mask,它可以是以下幾種:
(1)SA_NOCLDSTOP
忽略子進程發出的SIGSTOP,SIGTSTP,SIGTTIN,SIGTTAU
(2)SA_ONESHOT或者SA_RESETHAND
冊的定制的信號處理僅僅被執行一次,在它被執行後,信號的缺省操作將被還原
(3)SA_RESTART
使能可重起的系統調用
(4)SA_NOMASK或者SA_NODEFER
dont prevent the signal from being recieved within its own handler
忽略sa_restorer,它無需使用
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
signal的全集和信號handler (2001-06-29 14:08:00) Linux程式設計- 3.signals (2001-05-24 16:47:48) Linux程式設計- 2.fork, pthread, and signals (2001-05-24 15:00:00)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |