【发布时间】:2020-09-21 00:31:54
【问题描述】:
我想调用一个函数,该函数在 C 中每 5 秒定期创建文件。 下面是创建文件的函数代码。
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 秒定期调用一次上述函数
while(1){
file_create();
Sleep(5000);
}
这不允许执行while循环下面的行。
如何通过定期调用上述函数而不暂停程序其余部分的执行来实现这一点?
【问题讨论】:
-
您考虑过使用单独的线程还是必须在同一个线程中?
-
你知道timerfd_create吗?
-
@Milag 大写表示 Windows 和 Microsoft 的 C lib 以及 Windows API。 Glibc 将不可用。
-
每个人都说多线程,但你也可以使用事件循环。这也是很大的话题。查找 libuv。
-
请用windows标签标记发帖。
标签: c loops sleep periodic-task