linhanzu 发表于 2006-11-13 18:23:30

关于arm-linux-gcc编译的程序读文件结束符的问题

今天在arm板上做开发时,发现读文件的结束符返回计算文件长度总是不能返回。后来做了一个小的测试程序,源码如下(arm9;arm-linux-gcc 版本:3.3.2;文件系统为yaffs; var目录可写):

#include <stdio.h>

int main()
{
      FILE *fp;
      char *filename = "/var/config/config.ini";
      char chRed;
      int fileLen = 0;      

      fp = fopen(filename "w+");
      if(fp == NULL) return 0;
      for(; chRed!=EOF; fileLen++)
      {
            chRed = fgetc(fp);
         //      printf("run to here.\n");
      }
      printf("fileLen = %d\n", fileLen);
      fclose (fp);

                return 1;
}
编译:arm-linux-gcc-o test test.c然后下载到开发板上运行,发现不管config.ini文件是为空,有内容,还是不存在,该程序都不会返回退出,后来加上上面的printf后,看到一直在打印“run to here.”,也就是说没有退出循环。

我想问的就是为什么会读不到文件结束的标志EOF。 同样的代码在PC机上运行就能返回。
是arm-linux-gcc编译器的问题,还是什么原因导致的??
已经郁闷了半天了。请大家指点。
多谢
页: [1]
查看完整版本: 关于arm-linux-gcc编译的程序读文件结束符的问题