zoukankan      html  css  js  c++  java
  • 标准I/O介绍

    标准I/O库

    1. 标准I/O介绍

    不仅是在UNIX系统中,很多操作系统上都实现了标准I/O库。

    标准I/O库由ANSI C 标准说明

    标准 I/O 库处理很多细节,例如带有缓冲分配、以优化长度执行的I/O等,这样使用户不用关心如何选择合适的块长度。

    标准I/O在系统调用(文件I/O)的基础上构造,便于用户使用,但相对与系统调用多了缓冲机制。

    标准I/O库及其头文件 stdio.h 为底层I/O系统调用提供了一个通用的接口。

    2. 文件指针 FILE *

    FILE指针:每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息,这些信息是保存在一个结构体类型的变量中,该结构体的类型是由系统定义的,取名为FILE;

    标准I/O库的所有操作都是围绕 流(stream)进行的,在标准I/O中,流用FILE *来描述。

    流的定义:所有的I/O操作仅是简单的从程序移进或转移出,这种字节流,就称为流。分为文本流和二进制流,在Linux中都是二进制流。

    3. 文件缓冲

    文件系统给有两类:带缓冲文件系统(高级磁盘IO)和 非缓冲文件系统(低级磁盘IO)。

      缓冲文件系统是为了减少 系统调用(system call)read write的调用频率,降低操作系统负担。

      缓冲文件系统,系统自动在内存中为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据或从磁盘读取数据是,都是先放到缓冲区。

      缓冲文件系统又分为,全缓冲,行缓冲,不缓冲三种

    使用setbuf()和setvbuf() 可以更改缓冲的类型,而且在任何时刻都可以使用fflush强制刷新一个数据流。

    4. 标准I/O库函数

    标准I/O库提供的函数有很多,比较常用的有:

    fopen();/ fclose();/ fread();/ fwrite();/ printf();/ fprintf();/ fseek();等。

  • 相关阅读:
    Windows 7 任务计划程序
    '7z' 不是内部或外部命令,也不是可运行的程序
    [转]国外人气最旺的软件测试网站
    AutoIT查找文件内容并修改保存
    BUG 太少
    excel表格数据导入sqlserver数据库
    RoR常见问题
    [转]漫画:程序员的一生
    [转]RubyInstaller: Getting Started with Rails and SQLite3
    [转]C#多线程学习(一) 多线程的相关概念
  • 原文地址:https://www.cnblogs.com/chen-farsight/p/6024331.html
Copyright © 2011-2022 走看看