// block holding the pathname.
};
typedef struct _iobuf FILE;
好了,上面的结构体就是这样定义的。这里不得不再次提到缓冲:
缓冲模式
常量(mode)
备注
无缓冲模式
_IONBF
该文件不使用任何缓冲,也可以说是字节缓冲
只能保存一个字节。
行缓冲模式
_IOLBF
仅对文本模式打开的文件有效,所谓行,即是指每收到一个换行符( 或 ),就将缓冲flush掉
全缓冲模式
_IOFBF
仅当缓冲满时才进行flush
上面结构体中的_flag就标记了缓冲的信息(我们关心这三个):
#define _IOYOURBUF 0x0100 // 使用用户通过setbuf提供的buffer
#define _IOMYBUF 0x0008 //