我是编程新手。我一直试图找出延迟时间来减慢程序的执行速度。我一直在做研究,找不到一个有效的我已经阅读过关于nanosleep
和sleep
我已经尝试了两个但是当我把它们放在for
循环中时它等了几秒钟然后执行整个for
循环而不在迭代之间暂停。也许我的代码中有错误?我把它包含在下面。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
FILE *fp;
int i;
/* open the file */
fp = fopen("/dev/pi-blaster", "w");
if (fp == NULL) {
printf("I couldn't open pi-blaster for writing.\n");
exit(0);
}
/* write to the file */
for(i=99;i>=0;i--){
sleep(1);
fprintf(fp, "0=0.%d\n",i);
}
/* close the file */
fclose(fp);
return 0;
}
答案 0 :(得分:4)
正在缓冲对您的文件fp
的写入。 for循环中的fflush(fp)
因此它在下一次迭代之前将数据写入文件。否则,它会向缓冲区写一行,休眠一秒,写入缓冲区,休眠一秒等,然后在缓冲区填满或调用fclose(fp)
时将缓冲区刷新到文件中。 man fflush
了解更多详情。