我已经用C编写了这段代码,定期将数据写入文本文件,但我的程序不会定期写入;它完全写入文件而无需等待。我希望它将数据写入文件,等待~2秒,然后写下一行。
for (i = 0; i < 8; i++)
{
tm.hh = random() % 23;
tm.mm = random() % 59;
tm.ss = random() % 59;
dt.dd = random() % 31;
dt.mm = random() % 12;
dt.yy = random() % 2020;
if (dt.yy < 2020 && dt.yy > 2015)
{
while (dt.yy < 1900)
{
dt.yy = random() % 2020;
}
}
val1 = random() % 100;
val2 = random() % 100;
fprintf(fp, "%d:%d:%d,%d/%d/%d,%d,%d,\n", tm.hh, tm.mm, tm.ss, dt.dd, dt.mm, dt.yy, val1, val2);
id = fork();
if (id == -1)
printf("error in creating child process\n");
else if (id == 0)
{
exit(0);
}
else
wait(NULL);
}
fclose(fp);
答案 0 :(得分:2)
您可以在写任何行之前使用sleep()函数。 编辑:你需要包括:
在Windows中
#include <windows.h>
Sleep(<timeInMs>);
在Unix中
#include <unistd.h>
sleep(<timeInSeconds>);