首先介紹一下alarm函數
alarm也稱爲鬧鐘函數,它可以在進程中設置一個定時器,當定時器指定的時間到時,它向進程發送SIGALARM信號。要注意的是,一個進程只能有一個鬧鐘時間,如果在調用alarm之前已設置過鬧鐘時間,則任何以前的鬧鐘時間都被新值所代替。
所需頭文件
#include <unistd.h>
函數原型
unsigned int alarm(unsigned int seconds)
函數參數
seconds:指定秒數
函數返回值
成功:如果調用此alarm()前,進程已經設置了鬧鐘時間,則返回上一個鬧鐘時間的剩餘時間,否則返回0.
出錯:-1
再介紹一下signal函數
所需頭文件: #include <signal.h>
功能:設置某一信號的對應動作
定義函數:void (*signal(int signum,void(*handler)(int)))(int);
或者: typedef void(*sig_t)(int);
sig_t signal(int signum,sig_t handler);
函數說明:signal()會依參數signum指定的信號編號來設置該信號的處理函數。當指定的信號到達時就會跳轉到參數handler指定的函數執行。
如果參數handler不是函數指針,則必須是下列兩個常數之一:
SIG_IGN 忽略參數signum指定的信號。
SIG_DFL 將參數signum 指定的信號重設爲核心預設的信號處理方
式。
詳細信號,查看unix信號編號
返回值 返回先前的信號處理函數指針,如果有錯誤則返回SIG_ERR(-1)。
下面就是一個自己寫的小程序: