![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
在Linux中怎么样编写代码,确定一段时间过去了一个小时?
也就说有一件事我每隔一个小时要做一遍,我希望能够有一段代码可以表示从某个时刻起开始计时,到一个小时以后通知我时间到了?好像有一个叫什么闹钟的函数,可以计时,但是我忘记叫什...
也就说有一件事我每隔一个小时要做一遍,我希望能够有一段
代码可以表示从某个时刻起开始计时,到一个小时以后通知我时间到了?
好像有一个叫什么闹钟的函数,可以计时,但是我忘记叫什么名字了? 展开
代码可以表示从某个时刻起开始计时,到一个小时以后通知我时间到了?
好像有一个叫什么闹钟的函数,可以计时,但是我忘记叫什么名字了? 展开
2个回答
展开全部
alarm()函数,函数中的参数表示时间,单位为秒。这个函数的执行是,程序运行到这里开始计时,到了你所指定的参数时间后,给当前进程发出SIGALRM信号。然后用signal函数接收信号,转到要执行的函数出执行。这只是简单的一种用法,其他用法自己查资料。
比方说你这个例子:
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
int i=1;
void handler() //自定义的处理函数
{
printf("5秒时间到!\n");
i=0; //将全局变量置0,退出main中的while循环
}
main()
{
signal(SIGALRM,handler);//等待接收SIGALRM信号
alarm(5); //5秒计时
while (i) //死循环,抱着进程在5秒之前不能退出
{
}
return 0;
}
程序运行结构为,运行5秒后,打印出5秒时间到!,退出程序。
注意这个程序是linux中的,windows中头文件不匹配
比方说你这个例子:
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
int i=1;
void handler() //自定义的处理函数
{
printf("5秒时间到!\n");
i=0; //将全局变量置0,退出main中的while循环
}
main()
{
signal(SIGALRM,handler);//等待接收SIGALRM信号
alarm(5); //5秒计时
while (i) //死循环,抱着进程在5秒之前不能退出
{
}
return 0;
}
程序运行结构为,运行5秒后,打印出5秒时间到!,退出程序。
注意这个程序是linux中的,windows中头文件不匹配
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-26
展开全部
定时器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询