标准I/O

为什么需要标准IO?

        每一个系统,对文件的管理接口是不一样的

        Linux:read,write,open,close

        windows:winOpen

        C语言标准委员会就觉得有义务统一对文件的管理接口,由此开发出了标准IO库

        文件分为普通文件和二进制文件:普通文件有.txt .c .s .sh 以字符的ASCII码来解析文件

        二进制文件有:.jepg .bmp .mp3 .hex  ......  有特定格式的文件 按照特定的格式去解析

在标准IO库中,用结构体FILE来描述或者表示一个文件  在这个结构体中,会创建两个缓冲区、读缓冲和写缓冲 struct FILE{char *in;char *out;}还提供了对“文件”的操作接口函数: 
        fopen/fclose/fread/fwrite/flseek/....
        puts/gets/fputs/fgets/scanf/printf/...... 

标准IO带缓冲的IO,IO流,stream . 它的效率要比系统IO要高,why? 
        系统IO: 
            read 1byte 
            APP(read) -> 内核(.....) -> 硬件(从硬盘中读一个字节出来)
            .....
            APP(read) -> 内核(.....) -> 硬件(从硬盘中读一个字节出来)
        标准IO: 
            fread 1byte 
            它会从硬盘上读取一块(512Bytes)出来,放到标准IO的读缓冲区。

#include <stdio.h>
        FILE *fopen(const char *pathname, const char *mode);
            @pathname : 要打开的那个文件的文件名(带路径)
            @mode : 打开的那个文件的方式,如下几种方式: 
                "r" :只读打开。文件不存在,则报错;
                    打开后,光标在开头 
                    
                "r+" : 读写打开。文件不存在,则报错; 
                    打开后,光标在开头 
                    
                "w" : 只写打开。文件不存在,则创建;
                    打开后,文件内容截短(文件内容被清空)
                    
                "w+" : 读写打开。文件不存在,则创建;
                    打开后,文件内容截短(文件内容被清空)
                    
                "a" : append 追加打开。文件不存在,则创建;
                    打开后,光标在末尾。文件内容不会截短。
                    
                "a+" : 读写打开。文件不存在,则创建;
                    原始读的位置在开头,原始写的位置在末尾。
                    (只有一个光标,先读->开头 
                        先写 -> 末尾)

成功返回一个文件流指针 FILE*

冲洗一个文件流 
        fflush  同步一个文件流 

            fflush: 把缓冲区的内容做一次与硬件同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值