1.kill産生一個信号: extern int kill (__pid_t __pid, int __sig); pid>0:将信号發送給程序的pid為pid的程序; pid=0:将信号發送給和目前程序在同一個程序組的所有程序; pid=-1:将信号發送給系統内的所有程序; pid<0:将信号發送給程序組号PGID為pid絕對值的所有程序; 成功傳回0;失敗傳回值-1.
2.raise自舉一個信号: extern int raise (int __sig); 它用來給目前程序發送一個信号,即喚醒一個程序。
3.alarm()定時: extern unsigned int alarm(unsigned int __seconds); 定時産生信号,即在多少時間内産生SIGALRM信号;并不是循環産生,而是每調用一次,産生一次。 如果sec為0,則取消所有先前發出報警的請求。
4.ualarm()定時: extern __usconds_t ualarm(__useconds_t __value, __useconds_t __interval); 在使目前程序在指定時間(第一個參數)内産生SIGALRM信号,然後每隔指定時間(第二個參數)重複産生SIGALRM信号。
5.信号處理: (1)忽略此信号,但有兩種信号不能被忽略:SIGKILL和SIGSTOP。 (2)捕捉信号: (3)執行系統預設操作
6.signal安裝信号: typedef void (*__sighandler_t) (int); extern __sighandler_t signal(int __sig, __sighandler_t __handler); 第二個參數為處理信号的代碼入口或下面幾個宏: #define SIG_ERR ((__sighandler_t) -1); #define SIG_DFL ((__sighandler_t) 0); #define SIG_IGN ((__sighandler_t) 1);
7.sigaction安裝信号: extern int sigaction (int __sig, struct sigaction * __act, struct sigaction * __oact); 第一個參數為接收到的信号; 第二個參數用來指定欲設定的信号處理資訊; 第三個參數将傳回執行此程式前此信号處理資訊;