首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么每隔一段时间自动执行程序

2012-02-10 
如何每隔一段时间自动执行程序?求一C程序,要求每隔一段时间(比如说1分钟)就打印1行语句,如hello,world!程

如何每隔一段时间自动执行程序?
求一C程序,要求每隔一段时间(比如说1分钟)就打印1行语句,如hello,world!程序一直跑着,不能中断,不能用死循环(太耗系统资源)。谢谢各位!

[解决办法]
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
for (;;)
{
cout < < "hello, word\n " < < endl;
sleep(60);
}
return 0;
}

[解决办法]
定时器,或者中断
[解决办法]
死循环不耗时啊
操作系统就是一直在死循环 :)

不死循环那只有你的程序运行结束, 死循环状态是idle :)
[解决办法]
典型的timer。
[解决办法]
很多种方法。。。timer。。。或者进程休眠。。。建议看看进程同步的书籍就从根本上知道了。。。
[解决办法]
用sleep()函数
[解决办法]
三种方法:
1.两个程序,一个使用sleep( )函数,在TC中参数以秒计时,在GCC中参数以毫秒计时,在sleep()后加system函数调用需要执行的另一个程序.
2.两个程序,一个使用delay( )函数,在其后加system函数调用需要执行的另一个程序.
3.使用windows计划任务
[解决办法]
程序一直跑着

--------

不要无限循环那用什么?
[解决办法]
#include <stdio.h>
#include <dos.h>

void main()
{
unsigned temp_time,temp, run_time;
struct time t1,t2;
char run_num=0; /*控制程序循环,便于调试 */
gettime(&t1);
temp_time=t1.ti_min*60+t1.ti_sec; /*初始时间---转化为秒 */
run_time=1; /*设定1秒显示一次*/
do /*主函数循环 */
{
gettime(&t2);
temp=t2.ti_min*60+t2.ti_sec; /*当前时间--转换为秒*/
if((temp-temp_time)> =run_time)
{
temp_time=temp;
printf( "hello, word\n ");
run_num++;
}
/* 主程序内的其他程序; */
}while(run_num <10);
}

以上程序通过了编译!
[解决办法]
其实我觉得代码对你并不重要,重要的是思路,我的思路就是在程序里面读取当前时间,与上次运行时的时间比较,如果> =设定时间,程序就可以运行,否则就不用你会它!
另外,如果你确实要程序一直不停的跑,run_num这个变量取消就是了,它只是用来调试的!
把while(run_num <10);改成while(1);除非你关电源否则程序不会停下来!^_^

热点排行