程序挂起printf或跳过printf

时间:2015-09-24 02:22:32

标签: c

我的程序是经常获取文件大小并显示它以记录任何更改。出于某种原因执行下面的代码挂起,只是为我提供了一个游标。没有打印或显示任何内容。

代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
  if (argc != 3)
  {
    printf("ERROR: Please enter correct amount of arguments."); 
    exit(0);
  }

  FILE *fp = fopen(argv[1], "r");
  int time = atoi(argv[2]);
  int size=0;

  printf("Seconds File Size");

  while(1)
  {
    fseek(fp, 0L, SEEK_END);
    size = ftell(fp);

    sleep(4);
  }
  fclose(fp);
}

1 个答案:

答案 0 :(得分:1)

主要问题是你输入一个字符串到缓冲区,然后在确保将缓冲区刷新到屏幕之前输入一个无限循环。

printf("Seconds File Size");
fflush(stdout);

其他问题:

  1. 您不会检查fopen()
  2. 的结果
  3. 无法退出无限循环。