zoukankan      html  css  js  c++  java
  • 深入理解计算机系统(第二版)----之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)关闭文件:内核释放文件打开时创建的数据结构,并将这个描述符恢复到可用的描述符池中,无论进城因为何种原因终止,内核都会关闭所有打开的文件并释放他们的存储器资源。

  • 相关阅读:
    docker镜像操作
    利用docker搭建lnmp平台
    算法导论笔记
    算法导论笔记
    VMware 安装CentOS 7 NAT模式 配置静态ip 连接外网 xshell连接虚拟机
    spring boot入门笔记(四)
    spring boot入门笔记 (三)
    spring boot入门笔记 (二)
    spring boot入门笔记 (一)
    修改request请求参数
  • 原文地址:https://www.cnblogs.com/xiaodoujiaohome/p/6652890.html
Copyright © 2011-2022 走看看