• 深入理解计算机系统(第二版)----之1:(三:程序间的交互和通信)系统级 IO


    IO是主存和外部设备之间拷贝数据的过程,所有语言的运行时系统都提供执行IO的较高级别工具,例如ANSI C提供标准IO库,包含想printfscanf这样执行带缓冲区的IO函数,C++语言用他的重载操作符<<>>提供了类似功能。

    10.1 unix IO

    一个io文件就是一个m字节的序列,所有io设备,如磁盘 网络和终端,都被模型化为文件,所有输入输出都被当作对文件的读写来执行,这种吧设备映射为文件的方式,允许unix内核引出一个简单的应用接口即unix IO,这使得所有IO都能以一种统一且一致的方式来执行。

    1)打开文件:一个应用程序通过要求内核打开响应的文件,宣告访问一个IO设备

    内核返回一个小的非负整数,叫做描述符。

    Unix外壳创建的每个进程开始时候都有谁那个打开的文件,标准输入描述符为0,标准输出1,标准错误2

    2)改变当前文件的位置:对于每个打开的文件,内核保持着一个文件weizhik,初始为0,这个文件位置是从文件开头其实的字节偏移量,应用程序能够通过执行seek操作,显式地设置文件的当前位置k.

    3)读写文件:读操作就是从文件拷贝n>0个字节到存储器,从当前文件位置k开始,然后将k增加到k+n

    4)关闭文件:内核释放文件打开时创建的数据结构,并将这个描述符恢复到可用的描述符池中,无论进城因为何种原因终止,内核都会关闭所有打开的文件并释放他们的存储器资源。

  • 相关阅读:
    若没有特殊说明,博文密码都是我的生日
    「考前日志」11.18
    「考前日志」11.17
    洛谷 P2018 消息传递
    「考前日志」11.16
    「考前日志」11.15
    「考前日志」11.14
    2020.11.13 “考试”
    「考前日志」11.13
    AcWing277 饼干
  • 原文地址:https://www.cnblogs.com/xiaodoujiaohome/p/6652890.html
Copyright © 2020-2023  润新知