2009
03-30

书上说文件的定义为:


typedef struct


{short level;      unsigned flags;………short token;


}FILE;


请问我可以访问文件里面定义的成员吗?我试者访问了一下为什么不行啊?


比如:FILE *fp=fopen(“file.1″,”w”);


cout<<fp->flags<<endl;   //为什么不行呢?


文件的问题》有 3 条评论

  1. wxjwxjwkjl 说:

    问题我已经找到了!因为C和C++定义文件定义的不一样!他是这么定义的:

    struct _iobuf {
            char *_ptr;
            int   _cnt;
            char *_base;
            int   _flag;
            int   _file;
            int   _charbuf;
            int   _bufsiz;
            char *_tmpfname;
            };
    typedef struct _iobuf FILE;

    请问高手!你能说下定义成员的具体作用是什么吗?比如哪个成员是文件描述符!等等!

  2. whos 说:

    找了一些资料也没有找到具体解释,就从网上搜了一下。

    struct   _iobuf   {
                    char   *_ptr;           //文件输入的下一个位置
                    int       _cnt;           //当前缓冲区的相对位置
                    char   *_base;         //指基础位置(应该是文件的其始位置)
                    int       _flag;         //文件标志
                    int       _file;         //文件的有效性验证
                    int       _charbuf;   //检查缓冲区状况,如果无缓冲区则不读取
                    int       _bufsiz;     //文件的大小
                    char   *_tmpfname;//临时文件名
                    };
    typedef   struct   _iobuf   FILE;

  3. wxjwxjwkjl 说:

    谢谢指导!

留下一个回复