1、流的定向(stream's orientation)决定了所读、写的字符是单字节还是多字节的。
2、若在未定向的流上使用一个多字节I/O函数(见<wchar.h>),则将该流的定向设置为宽定向的。反之,字节定向的。
3、只有两个函数可改变流的定向。freopen函数(稍后讨论)清除一个流的定向;fwide函数可用于设置流的定向。fwide并不改变已定向流的方向。
4、标准输入、标准输出和标准错误自动地被进程使用,与文件描述符STDIN_FILENO、STDOUT_FILENO和STERR_FILENO所引用的相同。这3个标准
I/O流通过预定义文件指针stdin、stdout和stderr加以引用。这3个文件指针定义在头文件<stdio.h>中。
5、标准I/O库提供缓冲的目的是尽可能减少使用read和write调用的次数。
6、标准I/O提供了全缓冲、行缓冲和不带缓冲3种类型的缓冲。根据数据是否在缓冲区来决定是否需要从内核中读数据。

7、在标准I/O库方面,fflush(冲洗)意味着将缓冲区中的内容写到磁盘上(该缓冲区可能只是部分填满的)。在终端驱动程序方面(如tcflush函数),flush(刷清)表示丢弃已存储在缓冲区的数据。

9、ISO C要求下列缓冲特征。
(1) 当且仅当标准输入和标准输出并不指向交互式设备时,它们才是全缓冲的。
(2) 标准错误决不会是全缓冲的。
8、很多系统默认使用下列类型的缓冲。
(1) 标准错误是不带缓冲的。
(2) 若是指向终端设备的流,则是行缓冲的;否则是全缓冲的。
10、可以调用setbuf或setvbuf更改缓冲类型。
(1) _IOFBF 全缓冲
(2) _IOLBF 行缓冲。
(3) _IONBF 不带缓冲。

10-04 13:27