alarm - 设置传递信号的闹钟
头文件与函数:
#include <unistd.h>
unsigned int alarm(unsigned int seconds);
函数描述:
alarm()函数以seconds秒为单位发出SIGALRM信号。
如果seconds值为0,所有正在等待的alarm信号取消。
alarm信号只有一个有效,若有多个,则最后设置的有效。
返回值:
alarm() 返回上次alarm调用剩余的时间,若之前没有调用则返回0.
实例:
#include <stdio.h>
#include <signal.h>
#include <unistd..h>
void timer(int sig)
{
if (SIGALRM == sig)
{
printf("timer\n");
alarm(1);
}
}
int main()
{
signal(SIGALRM, timer);
alarm(1);
getchar();
return 0;
}
alarm()函数与 signal(int signum, sighandler_t handler)函数一起使用,通过signal()函数指定函数所收的信号。
signal()函数可以将信号设置给指定函数。
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);