信號是unix和linux系統響應某些條件而產生的一個事件。如果進程接收到信號,但事先沒有安排捕獲它,進程將會立刻終止。按照通常情況配置,在鍵盤上敲入中斷字符就會向前臺進程(即當前運行的進程)發送SIGINT信號,這將引起該進程的終止,除非它事先安排了捕獲這個信號。如果想發送一個信號給一個進程,且這個進程不是當前的前臺程序,就需要kill命令
int kill(pid_t pid, int sig)
鬧鐘函數
unsigned int alarm (unsigned int seconds)
該函數在seconds秒之後安排發送一個SIGALRM信號。
常用的信號接口爲signal和sigaction,sigaction相對比較健壯,推薦使用。以下是sigaction的一些信息。
sigaction函數的功能是檢查或修改與指定信號相關聯的處理動作(可同時兩種操作)。 他是POSIX的信號接口,而signal()是標準C的信號接口(如果程序必須在非POSIX系統上運行,那麼就應該使用這個接口) 給信號signum設置新的信號處理函數act, 同時保留該信號原有的信號處理函數oldact
|