东阳的学习笔记
流和FILE对象
当打开一个文件时,即返回一个文件描述符,然后该文件描述符就用于后续的IO操作。而对于IO操作,他们的操作是围绕流进行的。
对于ASCII字符集,一个字符用一个字节表示。对于国际字符集,一个字符可以用多个字节表示,标准IO文件流可用于单字节和多字节(“宽”)字符集。流的定向决定了所读、写的字符是单字节还是多字节的。
- 当一个流最初被创建时,它并没有定向。
- 如果在未定向的流上使用一个多字节 I/O 函数,则设置流的定向为宽定向的
- 若在未定向的流上使用一个单字节的I/O函数,则设置为字节定向
- 只有两个函数可以改变流的定向。
- freopen 函数:清除一个流的定向
- fwide函数:设置流的定向
函数的具体细节略。
打开流
- fopen
- freopen
- fdopen
函数具体细节略,他们都返回一个FILE *
当以读和写类型打开一个文件时,具有下列限制:
- 如果中间没有 fflush、fseek、fsetpos或rewind,则输出的后面不能直接跟随输入
- 如果中间没有 fseek、fsetpos 或 rewind,或者一个输入操作没有到达文件尾端,则在输入操作之后不能直接跟随输出。