Chinaunix

标题: 关于arm-linux-gcc编译的程序读文件结束符的问题。 [打印本页]

作者: gomo1234    时间: 2006-11-13 18:07
标题: 关于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编译器的问题,还是什么原因导致的??
已经郁闷了半天了。请大家指点。
多谢
作者: mq110    时间: 2006-11-13 19:38
为什么要这么计算文件长度呢??
man 2 stat
作者: happer_xc    时间: 2006-11-15 08:27
for(; !feof(fp); fileLen++)
试试这样




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2