其中一个叫timer,另外一个叫worker。 timer线程工作入口函数为send_signal_every_second,负责定时发送信号,程序中通过sleep函数,每隔1s发送SIGALRM信号给当前进程(getpid())。 worker线程工作的入口函数为print_hello_when_receive_signal,进入之后,首先为进程的SIGALRM信号设置了一个sighandler处理函数,然后进入一个循环。
5. 编译并运行程序 将上述代码保存到一个C文件中(例如timer.c),然后使用gcc编译并运行: bash gcc timer.c -o timer ./timer 这个程序将在每天1点30分触发一次,执行你预定的任务,并重新设置定时器以便在第二天同一时间再次触发。请确保你的系统支持这些函数,并且在需要时添加适当的错误处理逻辑。
得到对应文件的属性信息,存放到struct stat结构体变量中。 运行截图: 第一步: 因为log文件没有被修改过,所以程序不会上传。 第二步:手动输入字符串 yikoulinux 到日志文件 t.log中。 第三步:因为文件发生了改变,所以打印“file updated”,同时可以看到curl上传文件的log信息。 以下是FTP服务器的根目录,可以看到...
执行某个方法\n"); } int main() { // 设置定时器的处理函数 signal(SIGALRM, timer_handler); // 设置定时器 struct itimerval timer; timer.it_value.tv_sec = 2; // 初始定时时间 timer.it_
现在我们利用这些时间函数,来实现一个定时执行某个任务得功能。 功能 程序运行时要记录当前日志文件的最后修改时间; 每个10秒钟就检查下log文件是否被修改,如果没有被修改就休眠10秒钟; 如果log文件被修改了,就将当前的日志文件拷贝成备份文件,备份文件名字加上当前时间; ...
现在我们利用这些时间函数,来实现一个定时执行某个任务得功能。 功能 程序运行时要记录当前日志文件的最后修改时间; 每个10秒钟就检查下log文件是否被修改,如果没有被修改就休眠10秒钟; 如果log文件被修改了,就将当前的日志文件拷贝成备份文件,备份文件名字加上当前时间; ...
1.主程序time_main.c #include "timefunction.h" /*使用尖括号< >,编译器会到系统路径下查找头文件*/ /*而使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找*/ int main() { timedata timedataini = {2000,1,1,0,0,0};/*声明时间的结构体变量,并进行初始化时间...
现在我们利用这些时间函数,来实现一个定时执行某个任务得功能。 功能 鸿蒙官方战略合作共建——HarmonyOS技术社区 程序运行时要记录当前日志文件的最后修改时间; 每个10秒钟就检查下log文件是否被修改,如果没有被修改就休眠10秒钟; 如果log文件被修改了,就将当前的日志文件拷贝成备份文件,备份文件名字加上当前时间; ...
运行截图: 第一步: 因为log文件没有被修改过,所以程序不会上传。 第二步:手动输入字符串 yikoulinux 到日志文件 t.log中。 第三步:因为文件发生了改变,所以打印“file updated”,同时可以看到curl上传文件的log信息。 以下是FTP服务器的根目录,可以看到,上传的日志文件:t-2020-7-26-1-19-45.log。
定时执行方法是C语言中常用的编程技巧,可以在程序运行的过程中按照指定的时间间隔执行一段代码。通过软件定时器或硬件定时器的实现,我们可以实现定时发送消息、定时更新数据以及定时执行定期任务等功能。在实际的应用中,我们可以根据具体需求选择适合的定时执行方法,并进行相应的配置和操作。 参考文献 1.C定时执行函数的实...