今天我正在学习关于 C 的标准 I/O 的东西。当我打开 stdio.h 文件时发现:
typedef struct _iobuf FILE;
当检查 struct _iobuf 的定义时发现:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
为了了解更多,我已经给出了关于每个不正确与否的描述
struct _iobuf {
char *_ptr; /* next character position */
int _cnt; /* characters left */
char *_base; /* location of buffer */
int _flag; /* File status flags */
int _file;
int _charbuf; /*Data transfer buffer */
int _bufsiz; /* Buffer size */
char *_tmpfname; /* Temporary file indicator */
};
现在有两个问题在我的脑海里?
Q1:我是否提供了正确的名称以及结构如何帮助 I/O,如果我添加或删除任何东西会发生什么?这会相应地工作吗?这里提供的顺序重要吗?
Q2:这里没有使用指针,但为什么要使用 FILE * 打开文件?