首页 > 其他分享 >(五)文件IO

(五)文件IO

时间:2022-10-24 20:55:07浏览次数:67  
标签:文件 函数 描述符 虚拟地址 地址 IO

1 标准C库IO函数

image

  • 标准C库跨平台方式,在不同平台下调用不同平台的API。
  • 标准C库,效率比系统IO函数更高,因为有缓冲区,降低了写磁盘的次数。
  • 根据不同的情况选择,比如对磁盘读写时,选着标准C库IO函数;网络通信要求较高的实时率,就要选择Linux系统IO函数了。

2 标准C库IO函数和Linxu系统IO的关系

调用与被调用的关系

标准C库IO函数将数据读取缓冲区,缓冲区满后写入磁盘。
image

3 虚拟地址空间

程序所使用的内存地址叫做虚拟内存地址(Virtual Memory Address)。实际存在硬件里面的空间地址叫物理内存地址(Physical Memory Address)。操作系统引入了虚拟内存,进程持有的虚拟地址会通过 CPU 芯片中的内存管理单元(MMU)的映射关系,来转换变成物理地址,然后再通过物理地址访问内存.

image

  • 一个程序运行后对应一个进程,一个进程拥有一个虚拟地址空间
  • 32位机器有2^32B=4GB的虚拟地址空间
  • 虚拟地址空间中的数据会被MMU(内存管理单元)映射到真实的物理内存
  • 实际上不会占用4G的内存空间
  • 堆空间:从低地址到高地址
  • 栈空间:从高地址到低地址
  • 通过系统调用操纵内核

4 文件描述符

内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。

image

5

  • 文件描述符保存在内核区,由该进程的PCB(进程控制块)管理
  • 文件描述符表最大1024,前三个默认被占用,与当前终端绑定
  • 同一个文件可以打开多次,但对应的文件描述符不一样

参考链接
如何理解虚拟地址空间?
文件描述符
https://www.nowcoder.com/study/live/504/1/19

标签:文件,函数,描述符,虚拟地址,地址,IO
From: https://www.cnblogs.com/dalelee/p/16819196.html

相关文章

  • cstdio(cstdio头文件是什么)
    #include<cstdio>有什么用?#include<iostream>#include<cstdio>#include<algorithm>帮我解释一下这几个头文件,怎么用的很多呢。怎么跟你说啊。把最常用给你贴出来,看看吧......
  • ctime(ctime头文件的作用)
    C语言ctime()没有#include的写法,只有#include,time.h是C语言里时间的库函数。ctime在C语言里,只是一个把日期和时间转换为字符串......
  • Leetcode第915题:分割数组(Partrition Array Into Disjoint Intervals)
    解题思路最终的是将一个数组分为两个数组:左数组和右数组。这两个数组满足:左数组的最大值小于右数组的任何值。需要一个变量left_max来记录左数组的最大值。左数组长度......
  • cstdlib(头文件cstdlib)
    C++编程这个删除多于空格的程序在屏幕上可以显示了,为什么导出的?ostream_iteratoroutput(cout,"\n");istream_iteratorinput(cin);istream_iteratore;copy1(input,e,o......
  • session的用法
    seession是一个为了保存用户状态而创建的一个特殊的对象其本质上相当于Map,里面可以存放多个键值对,是以key-value进行存放的(key必须是一个字符串,value是一个对象)该对象主......
  • 文件操作
    publicstaticStringfileExtendName(StringfileName){if(StringUtils.isBlank(fileName)){returnnull;}if(!fileName.contains(".")){......
  • CH32V307 IO翻转速度测试
    CH32V307IO翻转速度测试记录RISC-VMCUCH32V307IO极限翻转速度。测试代码如下:/**********************************************************************@fn......
  • Pycharm配置默认文件头注释和函数注释参数
    笔者使用Pycharm编辑器需要默认新增文件头的注释,再介绍Pycharm的小技巧,希望能对大家有所帮助!!!1.自动添加文件头注释文件头模板设置路径:Settings->Editor->FileandCodeT......
  • UNIXwen文件系统与Windows——FAT16文件系统
    UNIXwen文件系统FCB=目录项+i节点目录项:文件名+i节点号目录文件由目录项构成i节点:描述文件的相关信息每个文件由一个目录项、一个i节点和若干磁盘块构成Windows——FAT16文......
  • react中useTransition的执行原理
    _版本:v18.2.0本文为我花了大半年的时间潜心研究所写,转载请注明出处,谢谢本文假设你读了本系列中的《触发onClick,react会执行哪些操作》、《react中suspense组件是如何重......