闹钟函数alarm()的解释与实践
程序员文章站
2022-07-14 10:19:35
...
alarm
定义
也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。可以设置忽略或者不捕获此信号,如果采用默认方式其动作是终止调用该alarm函数的进程。
#include "head.h"
#include <signal.h>
#include <unistd.h>
int main()
{
key_t key = ftok(".",1);
alarm(5);
int i = 1;
for(i = 1; i < 100; i++)
{
printf("%d\n",i);
fflush(stdout);
sleep(1);
}
}
#include "head.h"
#include <signal.h>
#include <unistd.h>
void handler(int s)
{
printf("SIGALRM 现在已经被更改了,默认是终止调用该alarm函数的进程\n");
}
int main()
{
key_t key = ftok(".",1);
signal(SIGALRM,handler);
alarm(5);
int i = 1;
for(i = 1; i < 100; i++)
{
printf("%d\n",i);
fflush(stdout);
sleep(1);
}
}
用alarm制作一个小的计算测试系统
在10秒内完成10以内的加法计算,最后输出计算正确,错误数量
#include "head.h"
#include <signal.h>
int X ,Y;
int handler(int s)
{
printf("RIGHT :%d FALSE :%d\n",X,Y);
exit(0);
}
int main()
{
key_t key = ftok(".",1);
srand((unsigned)time(NULL));
signal(SIGALRM,handler);
alarm(10);
while(1)
{
int x = rand() % 10;
int y = rand() % 10;
int z = 0;
printf("%d + %d = ",x,y);
scanf("%d",&z);
if(z = (x+y))
X++;
else
Y++;
}
alarm(0);
}