如何每隔一段时间自动执行程序?
求一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);除非你关电源否则程序不会停下来!^_^