Unix系统alarm函数详解


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.  
  6. void sig_alarm() 
  7.     exit(0); 
  8. int main(int argc, char *argv[]) 
  9.     signal(SIGALRM, sig_alarm); 
  10.     alarm(10); 
  11.     sleep(15); 
  12.     printf("Hello World!\n"); 
  13.     return 0; 

程序在10s后结束,并未输出Hello World!

相关内容