Linux文件IO

news/2024/5/16 21:26:30

文章目录

  • 1.文件操作的知识点
  • 2.文件的理解
  • 3.标记位
  • 4.文件的本质
  • 5.文件的应用
    • 5.1 重定向
      • 5.1.1 重定向的接口
      • 5.1.2 缓冲区的理解
  • 6.文件描述符2(stderr)的深入理解
  • 7.磁盘文件
    • 7.1 物理磁盘
    • 7.2 磁盘的存储结构
    • 7.3 磁盘存储的逻辑
    • 7.4 细化磁盘存储
  • 8.dd指令挂载


1.文件操作的知识点

文件的本质时进程在操作文件!
在这里插入图片描述

2.文件的理解

访问文件:可以使用文件操作,也可以使用系统调用
在这里插入图片描述

3.标记位

在这里插入图片描述

4.文件的本质

在这里插入图片描述
那又如何理解linux一切皆文件呢?硬件是怎么和文件扯上关系的?
在这里插入图片描述
有了上述理解,再来看一看:
在这里插入图片描述
在这里插入图片描述
最后再看一个例子:
在这里插入图片描述

5.文件的应用

首先来说一下怎么获取文件大小
在这里插入图片描述

5.1 重定向

重定向之前提到了很多次,但都没有很好的理解它。今天让我们看看下图来进行深度理解!
在这里插入图片描述
但是还有一个问题,为什么刚才不加fflush数据就出不来?而一加fflush数据就可以出来?
在这里插入图片描述

5.1.1 重定向的接口

把fd的内容拷贝到1,这句话错的,不准确,不要看这句话!
int dup2(int oldfd, int newfd);
函数功能为将newfd描述符重定向到oldfd描述符,相当于重定向完毕后都是操作oldfd所操作的文件
但是在过程中如果newfd本身已经有对应打开的文件信息,则会先关闭文件后再重定向(否则会资源泄露)

在这里插入图片描述

5.1.2 缓冲区的理解

在这里插入图片描述

6.文件描述符2(stderr)的深入理解

在这里插入图片描述

7.磁盘文件

7.1 物理磁盘

没有被打开的文件都在磁盘中存放,磁盘的存取概念如下:
在这里插入图片描述
在这里插入图片描述

机械硬盘偏一并且存储量大,所以机房使用的都是机械硬盘。固态太贵了!

7.2 磁盘的存储结构

在这里插入图片描述

7.3 磁盘存储的逻辑

在这里插入图片描述

7.4 细化磁盘存储

在这里插入图片描述

8.dd指令挂载

这便是dd指令的一个用法,当然其也可以用于制作系统镜像!
在这里插入图片描述


http://www.mrgr.cn/p/02431158

相关文章

拿到鹅厂的Offer啦!

企鹅想必是大部分开发者梦寐以求的归宿了,除了有丰富的福利之外,还有优厚的薪资待遇,以及大厂光环,即使干几年跳槽了,也能有很多选择。 这不,训练营的小伙伴在拿下字节跳动之后,又拿下一城,顺便把腾讯也给收了:但弱水三千只取一瓢饮,去哪家公司变成了最大的苦恼了,果…

参考文献

参考文献 Cite This For Me: Harvard, APA, MLA Reference Generator 参考文献排版 \begin{thebibliography}{99} \bibitem{1} Lustenhouwer N, Maynard D S, Bradford M A, et al. A trait-based understanding of wood decomposition by fungi[J]. Proceedings of the Nation…

利用AbortController,取消正在发送的请求

参考文章:https://blog.csdn.net/qq_45560350/article/details/130588101 解决问题:再图层中点击仓库的时候,点击后又取消掉,我们希望这个请求可以被取消掉,我们口可以利用AbortController控制器对象 实操&#xff1a…

禁止chrome自动更新

1、打开注册表,可以修改win+R,然后输入regedit 2、打开HKEY_LOCAL_MACHINE总文件夹下的SOFTWARE子文件夹找到Policies文件3、在该文件夹下进行新增文件,文件夹为新增项,先进行新增Google然后再到该文件夹下新增Update文件夹 4、然后再新增DWORD(32位)值(D),名称修改为Updat…

Elasticsearch初步了解学习记录

目录 前言 一、ElasticSearch是什么? 二、使用步骤(python版) 1.引入包 2.连接数据库 3.创建索引 4.写入数据 5.查询数据 三、相关工具介绍 1.ES浏览器插件 总结 前言 随着数据量的不断增加,传统的查询检索在速度上遇…

AskManyAI:一个GPT、Claude、Gemini、Kimi等顶级AI的决斗场

一直以来很多人问我能不能有个稳定,不折腾的全球AI大模型测试网站,既能够保证真实靠谱,又能够保证稳定、快速,不要老动不动就挂了、出错或者漫长的响应。 直到笔者遇到了AskManyAI,直接就惊艳住了! 话不多…

vscode 代码格式化设置

1.设置默认格式化工具 ctrl+shift+P,筛选“Format Document”,设置Prettier为默认、 2.设置保存自动格式化打开 VSCode,并打开你想要格式化的代码文件。 在菜单栏中,选择“文件”>“首选项”>“设置”(快捷键 Ctrl+,)。 在搜索框中输入“format on save”,然后点…

分享2024 golang学习路线

写在前面 Go语言(也称为Golang)是Google开发的一种静态强类型、编译型语言,它具有简洁、快速、安全、并发等特点,尤其适合构建大型软件、微服务架构和云平台服务。Go的学习曲线相对平缓,社区活跃,是现代编…

2-81. 创建交易窗口 UI 并实现拖拽交易打开交易窗口

关闭窗口 修改 EventHandler修改 InventoryUI修改 NPCFunction打开窗口人物无法移动 修改 Enums修改 EventHandler修改 NPCFunction修改 Player打开对话框人物还可以移动 修改 DialogController打开商店的时候同时打开背包 调整背包和商店锚点位置修改 InventoryUI拖拽物品实现…

linux的raid

raid 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。 简…

springCloudAlibaba集成sentinel实战(超详细)

一、Sentinel介绍 1. 什么是Sentinel Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 分布式系统的流量防卫兵: 随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流…

修改 git log 显示的时间格式

修改 git log 显示的日期时间格式 目录修改 git log 显示的日期时间格式1、发现问题2、分析问题3、解决问题参考 1、发现问题 输入 git log 查看 Git commit(提交)信息时,日期时间格式不是 “年-月-日 时:分:秒”❓ .2、分析问题 .使用 vim 编辑 git 的全局配置文件:git co…

OpenHarmony轻量系统开发【6】驱动之ADC按键

摘要:本文简单介绍如何操作ADC去读取电压,并且实现开发板上3个ADC按键检测的功能 适合群体:适用于润和Hi3861开发板,L0轻量系统驱动开发 文中所有代码仓库:https://gitee.com/qidiyun/hihope-3861-smart-home-kit 6…

Pycharm——安装mypy(静态分析器)

pycharm安装mypy mypy是一个静态分析器,为在程序运行前进行代码分析,解决数据类型不一致或数据类型错误的问题。安装插件添加mypy程序:找到自己的目录C:\Users\xuanyongjun\AppData\Roaming\Python\Python312\Scripts\mypy.exe 实参:$FilePath$ 工作目录:$FileDir$使用myp…

CBD

CBD(Central Business District,中央商务区),具体指一个国家或大城市里主要商业活动的聚集区。 美加等地也称商业中心区为“Downtown”(城市商业区),因为过去的住宅区都在山上,而商店街都在山下。而日本和韩国称中心商务区为“都心”或“繁华街”。 CBD概念最早产生于1…

​面试经典150题——LRU 缓存

​ 1. 题目描述 2. 题目分析与解析 首先讲解一下LRU LRU 是“Least Recently Used”的缩写,LRU 算法的基本思想是跟踪最近最少使用的数据,并在缓存已满且需要存储新数据时优先驱逐该数据。 LRU 算法通常的工作原理的简化解释: 当访问或使…

初等双射构造

组合意义好难My Blogs P0对于正整数 \(n\),称 \(a_{1\dots k}\) 是 \(n\) 的有序划分,当且仅当 \(\sum_i a_i=n\)。给定 \(n(\geq 2)\),求满足 \(\sum_{i}[2|a_i]\) 是偶数的有序划分个数。答案:\(2^{n-2}\)。 \(n\) 的所有划分可以看成有 \(n-1\) 个空位,每个空位可以放板…

Go 编译构建的一些细节

Go 编译构建的一些细节 发现自己竟然没有怎么认真研究过 go 的编译构建命令。 结论前置 go run 专门用来运行命令源码文件的命令,一般用来运行单个文件go build 主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件go install 编译并…

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)

效果: MPU6050姿态解算-卡尔曼滤波+四元数+互补滤波 目录 基础知识详解 欧拉角

2024年环境科学,资源与材料化学国际会议(ICESRMC2024)

2024年环境科学,资源与材料化学国际会议(ICESRMC2024) 会议简介 2024年国际环境科学、资源与材料化学会议(ICESRMC2024)将在中国三亚举行。ICESRMC2024会议主要关注环境科学、资源和材料化学,旨在为环境科学、能源和材料化学领域…