//利用sigaction函数进行信号处理
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
void timeout(int sig)
{
if(sig==SIGALRM)
{
puts("Time out!!");
alarm(2);
}
}
int main(int argc,char *argv[])
{
int i;
//声明sigaction结构体变量并在sa_handler成员中保存函数指针值;
struct sigaction act;
act.sa_handler=timeout;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
//注册SIGALRM信号处理器。调用alarm函数预约2秒后发生SIGALRM信号。
sigaction(SIGALRM,&act,0);
alarm(2);
for(i=0;i<3;i++)
{
puts("wait......");
sleep(100);
}
return 0;
}