运行系统:ubuntu 11.04
编译环境:GCC
语言:C语言
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
#include<stdio.h>
void send_ip()
{
printf("send a icmp echo request packet\n");
}
void recv_ip()
{
while(1)
;
}
void handler_sigalarm(int signo)
{
send_ip();
alarm(2);
}
int main()
{
signal(SIGALRM,handler_sigalarm);
raise(SIGALRM);
printf("\nfirst time\n");
recv_ip();
return 0;
}
运行结果是
send a icmp echo request packet
first time
(停顿2秒)
send a icmp echo request packet
(停顿2秒)
send a icmp echo request packet
(停顿2秒)
send a icmp echo request packet
(停顿2秒)
send a icmp echo request packet
...
信号处理函数返回到信号发生处