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

Posted 日拱一卒,功不唐捐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

C和指针 第十五章 错误报告perror和exit

《Linux Device Drivers》第十五章 内存映射和DMA——note

C 语言 文件操作

文件I/O

C++Primer 第十五章

文件I/O和标准I/O函数