在C中创建延迟

时间:2013-02-24 07:44:20

标签: c

我是编程新手。我一直试图找出延迟时间来减慢程序的执行速度。我一直在做研究,找不到一个有效的我已经阅读过关于nanosleepsleep我已经尝试了两个但是当我把它们放在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;
   }

1 个答案:

答案 0 :(得分:4)

正在缓冲对您的文件fp的写入。 for循环中的fflush(fp)因此它在下一次迭代之前将数据写入文件。否则,它会向缓冲区写一行,休眠一秒,写入缓冲区,休眠一秒等,然后在缓冲区填满或调用fclose(fp)时将缓冲区刷新到文件中。 man fflush了解更多详情。