首页 > 代码库 > C和指针 第十五章 文件I/O和二进制I/O

C和指针 第十五章 文件I/O和二进制I/O

stdio.h中包含了声明FILE结构

struct _iobuf {         char  *_ptr;         //文件输入的下一个位置         int   _cnt;          //当前缓冲区的相对位置         char  *_base;        //指基础位置(应该是文件的其始位置)         int   _flag;         //文件标志         int   _file;         //文件的有效性验证         int   _charbuf;      //检查缓冲区状况,如果无缓冲区则不读取         int   _bufsiz;       //文件的大小         char  *_tmpfname;    //临时文件名 };

FILE作为一种结构,用于访问一个流,如果激活了好几个流,那么每个流都有一个对应的FILE与他关联。当需要对流执行一些操作,调用一些函数,并向他们提供一个相关联的FILE参数。

对于ansi c运行时至少有三个流,标准输入stdin,标准输出stdout,标准错误stderr,他们都是指向FILE结构的指针。标准输入一般是键盘设备,输出是屏幕终端,一般错误和输出都是相同的,也可通过系统的输入\输出重定向进行指定输入输出。

$: program < source  > output

从source输入,输出到output。

流I/O总览

通过fopen函数打开一个流,指定读写模式,如果成功打开返回一个FILE *,打开失败返回NULL。fclose关闭流,关闭流可以防止文件被再次访问,保证储存于缓冲区的数据被正确的写入到文件。释放的FILE结构体,可以用于其他另外的文件。

I/O函数

I/O函数包括三种基本的形式处理数据:单个字符,文本行,二进制流

 

C和指针 第十五章 文件I/O和二进制I/O