[英]Calling a function periodically in C
我想调用一个 function,它在 C 中每 5 秒定期创建文件。 下面是创建文件的 function 代码。
void file_create(int time) {
snprintf(filename, sizeof(filename),"%s_%d", "data", index);
FILE *fp = fopen (filename, "w");
index++;
}
文件名将是 data_0、data_1、data_2 并在每次调用时继续。
如果我像下面这样放置无限循环,如何每隔 5 秒从主 function 定期调用上述 function
while(1){
file_create();
Sleep(5000);
}
这不允许执行 while 循环下面的行。
如何通过定期调用上面的 function 来实现这一点,而不需要执行程序的 rest?
您正在寻找多线程系统。 您必须创建一个执行上述 while 循环的任务和另一个执行当前程序其他部分的任务。
您可以使用多线程来执行此操作,这本身就是一个很大的话题。 我建议先研究 POSIX 线程 (pthreads) 如何工作。
在 Windows 中,这意味着线程应该等待自定义事件“关闭线程”5000 毫秒。 如果您收到事件,请停止线程。 否则在超时的情况下,执行周期性任务。 Windows 使用与 POSIX 不同的线程 API。
还有不同的Sleep(ms)
(Windows) vs sleep(s)
(POSIX) 功能......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.