2 c gcc cross-platform c99 visual-c++
今天我正在学习有关C的标准I/O的事情.当我打开stdio.h文件时发现:
typedef struct _iobuf FILE;
Run Code Online (Sandbox Code Playgroud)
当检查struct _iobuf的定义时发现:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
Run Code Online (Sandbox Code Playgroud)
为了更多地了解,我已经给出了关于每一个的描述,不论它是否正确
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 */
};
Run Code Online (Sandbox Code Playgroud)
现在有两个问题在我脑海里?
问题1:我是否提供了正确的名称以及I/O中的结构如何帮助,如果我添加或删除任何事情会发生什么?那会有相应的效果吗?这里提供的顺序是否重要?
Q2:这里没有使用指针,但为什么要使用FILE*打开文件?