C语言如何定时触发函数?要求精确的时刻,比如说12点

来源:百度知道 编辑:UC知道 时间:2024/07/08 00:26:29
定时器是时间段触发的,我的要求是某一点触发,比如说凌晨12点钟处理数据。若有用,追加50分。

可能不是你最想要的,但是可以大致满足你的要求。
另外还可以借助DOS的at命令进行计划任务。

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <dos.h>

main()
{
int HourWant=22;
int MinWant=31;
/*22点31分输出信息*/

struct time t;

while(1)
{
gettime(&t);
if (t.ti_hour==HourWant && t.ti_min==MinWant)
{
printf("time is up.");
break;
}
sleep(1); /*Delay for 1 second*/
}
getch();
}

#include <stdio.h>
#include <unistd.h>
#include <signal.h>

char user[40];

//alarm 捕捉函数
void catch_alarm ( int sig_num)
{
printf ("Sorry,time limit reached. \n");

//清除定时器
alarm (0);
exit (0);
}

int main ( int argc , char *argv[] )
{
//设置信号回调
Signal ( SIGALARM,catch_alar