• Linux 文件IO理解


    linux文件IO操作可以分为两种:

    1.带缓存的文件IO操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等

    2.不带缓存的文件IO操作,包括open, close, read, write, getc, getchar, putc, putchar 等

    两者的区别:

    1.带缓存的io操作是在标准C里面定义的(可移植),而不带缓存的io操作是POSIX中定义的(不可移植),属于系统调用。带缓存的实际上是在不带缓存的基础之上

    封装了一层,维护了一个输入输出缓冲区,使之能跨OS,成为ASCI标准。

    2.fread一次可以读一个结构,read在linux/unix中读二进制与普通文件没有区别。

    3.fopen返回的是文件流,open返回的是文件描述符。设备文件不可以当成流式文件来用,只能用open,而在linux/unix中任何设备都是文件,都可以用open,read等。

    另外,标准io又提供了3种不同方式的缓冲

    1.全缓冲。即缓冲区被写满或是调用fflush后,数据才会被写入磁盘。

    2.行缓冲。即缓冲区被写满或是遇到换行符时,才会进行实际的io操作。当流涉及一个终端时(标准输入和标准输出),通常使用行缓冲。

    3.不缓冲 。标准io库不对字符进行缓存处理。标准出错流stderr往往是不带缓存的,使得出错信息可以尽快显示出来。

  • 相关阅读:
    type 、instanceof、in 和 hasOwnproperty
    从代码中抽离数据的原则
    NSNotificationCenter 通知中心传值
    imageView添加阴影和边框
    block的基本使用
    内存管理总结
    把color转成image的方法
    Instruments检测解决内存泄露以及进行性能测试
    Xcode7 修改项目名完全攻略
    UITextField的使用总结
  • 原文地址:https://www.cnblogs.com/flysnail/p/2419843.html
Copyright © 2020-2023  润新知