歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Unix系統alarm函數詳解

Unix系統alarm函數詳解

日期:2017/3/1 10:14:35   编辑:Linux編程

Unix下編程很容易遇到這個函數,我們可以先看下這個函數的介紹,用man工具,man alarm。

對於Unix系統的聯機幫助中關於alarm函數的介紹如下:

  1. #include <unistd.h>
  2. unsigned int alarm(unsigned int seconds);

它的主要功能是設置信號傳送鬧鐘。其主要功能用來設置信號SIGALRM在經過seconds指定的秒數後傳送給目前的進程,如果在定時未完成的時間內再次調用了alarm函數,則後一次定時器設置將覆蓋前面的設置,當seconds設置為0時,定時器將被取消。它返回上次定時器剩余時間,如果是第一次設置則返回0。

舉個簡單的例子:

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <signal.h>
  5. void sig_alarm()
  6. {
  7. exit(0);
  8. }
  9. int main(int argc, char *argv[])
  10. {
  11. signal(SIGALRM, sig_alarm);
  12. alarm(10);
  13. sleep(15);
  14. printf("Hello World!\n");
  15. return 0;
  16. }

程序在10s後結束,並未輸出Hello World!

Copyright © Linux教程網 All Rights Reserved