书上说文件的定义为:
typedef struct
{short level; unsigned flags;………short token;
}FILE;
请问我可以访问文件里面定义的成员吗?我试者访问了一下为什么不行啊?
比如:FILE *fp=fopen(“file.1″,”w”);
cout<<fp->flags<<endl; //为什么不行呢?
>> 本文固定链接: http://www.vcgood.com/archives/3121
>> 转载请注明: wxjwxjwkjl 2009年03月30日 于 C语言帝国 发表
问题我已经找到了!因为C和C++定义文件定义的不一样!他是这么定义的:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
请问高手!你能说下定义成员的具体作用是什么吗?比如哪个成员是文件描述符!等等!
找了一些资料也没有找到具体解释,就从网上搜了一下。
struct _iobuf {
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指基础位置(应该是文件的其始位置)
int _flag; //文件标志
int _file; //文件的有效性验证
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
int _bufsiz; //文件的大小
char *_tmpfname;//临时文件名
};
typedef struct _iobuf FILE;
谢谢指导!