嗨当我的应用程序启动时,我加载一个函数 - 调用一个名为CreateFileNow()的函数{}
我想制作一个循环,但我不知道如何。我想每15秒写一次数据。所以我在应用程序启动时调用该函数,将数据写入文件,而不是等待15秒,然后再将数据写入文件。
FILE* file;
if (fopen_s(&file, "Accesslog.txt", "w") != 0)
{
return;
}
fprintf(file, "Test");
fclose(file);
如何制作一个每15秒运行一次代码部分的循环? 我不想使用While和Sleep,有人可以帮助使用GetTickcount();?
答案 0 :(得分:0)
使用fopen_s
我假设你正在使用Visual Studio。所以你可以使用Sleep
函数:
while(/* some condition */) {
Sleep(15000);
fprintf(file, "Test");
}
答案 1 :(得分:0)
创建一个单独的thread
,为您计时。该主题不会干扰您的主程序。全局变量每15秒更新一次,并触发main thread
将值更新为文件。
#include <pthread.h>
int update_file = 0;
void *time_thread(void *arg)
{
while (1) {
sleep(15);
update_file = 1;
}
}
int main(void)
{
pthread_t tid;
pthread_create(&tid, NULL, &time_thread, NULL);
while (1) {
while (update_file == 0);
FILE *file;
if (fopen_s(&file, "Accesslog.txt", "w") != 0) {
return;
}
fprintf(file, "Test");
fclose(file);
update_file = 0;
}
return 0;
}