当前位置: 首页 > news >正文

Linux的缓存I/O和无缓存IO

一、I/O缓存的背景

I/O缓存是指在内存里开辟一块区域,存放用来接收用户输入和用于计算机输出的数据,以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作(标准IO操作)。为什么存在C标准I/O库函数与Unbuffered I/O函数?它们有什么区别?

二、带缓存的I/O操作

​带缓存IO(标准IO),不依赖系统内核,所以移植性强,使用标准IO操作为了减少对read()和write()的系统调用次数,带缓存IO其实就是在用户层再建立一个缓存区,这个缓存区的分配和优化长度等其他细节都是标准IO库代你处理好了。系统调用如图所示

比如要写数据到文件上,内核缓存区长度是100字节,我们调用不带缓存的IO函数write()就要调用10次,这样系统效率低。

现在我们在用户层建立另一个缓存区(用户层缓存区或者叫流缓存),假设流缓存的长度是50字节,我们用标准C库函数的fwrite()将数据写入到这个流缓存区里面,流缓存区满50字节后在进入内核缓存区,此时再调用系统函数write()将数据写入到文件(实质是磁盘)上标准IO操作fwrite()最后还是要掉用无缓存IO操作write,这里进行了两次调用fwrite()写100字节也就是进行两次系统调用write()函数。

​ 无缓存IO操作数据流向路径:数据——内核缓存区——磁盘
​ 标准IO操作数据流向路径:数据——流缓存区——内核缓存区——磁盘

​ 标准I/O对每个I/O流自动进行缓存管理(标准I/O函数通常调用malloc来分配缓存)。它提供了三种类型的缓存:
​ 1) 全缓存:缓存满时I/O操作。磁盘上的文件通常是全缓存的。
​ 2)行缓存。当输入输出遇到新行符或缓存满时.stdin、stdout通常是行缓存的。
​ 3)无缓存。相当于read、write了。stderr通常是无缓存的

三、无缓存I/O(Unbuffered )I/O函数

刚看到这个"unbuffered",读者就觉得奇怪,操作系统不是对所有的输入输出都会做缓存吗(delayed write),为什么还会存在unbuffered?

其实,这里的ubuffered,是指的是针对与read和write本身来说,它们是没有缓存机制,比如read(fd,temp,100),在读够100个字节后或者遇到文件EOF后就返回,非常单纯。而C标准库函数中的fread和fwrite,就是利用缓存技术来调用read和write,可以说是buffered I/O。

但是,叫做无缓存IO是因为在用户层没有缓存,但对于Linux内核来说,还是进行了缓存,只是用户层看不到罢了。

这些不带缓存的I/O函数不是标准 C的组成部分,但是,它们是POSIX.1和Single UNIX Specification的组成 部分。C标准库函数是C标准的一部分,而Unbuffered I/O函数是UNIX标准的一部分。只有在UNXI平台上才能用Unbuffered I/O函数,windows上不行。所以C标准I/O库函数在头文件stdio.h中声明,而read、 write等函数在头文件unistd.h中声明。
 

四、两种I/O函数使用场景

open、read、write、close等系统函数称为无缓冲I/O(Unbuffered I/O)函数,用户程序在读写文件时既可以调用C标准I/O库函数,也可以直接调用底层的Unbuffered I/O函数,那个各自使用场景是什么呢?

  • 用Unbuffered I/O函数每次读写都要进内核,调一个系统调用比调一个用户空间的函数要慢很多,所以在用户程序开辟I/O缓冲区还是必要的,用C标准I/O库函数比较方便,省去自己开辟内存空间。
  • 用C标准I/O库函数要时刻注意I/O缓冲区和实际文件有可能不一致,在必要时调用fflush(3)。
  • UNIX的传统是Everything is a file,I/O函数不仅可以读写文件还可以读写设备。在读写设备时通常是不希望有缓冲的。比如网络设置的读写就希望是实时读写,而不希望只写到缓冲区里,所以网络编程通常直接调用Unbuffered I/O函数。
     

五、磁盘交互的读写文件流程

当应用程序尝试读取磁盘上的某块数据的时候,如果这块数据已经存放在页缓存(内核高速缓存)中,那么这块数据就可以立即返回给应用程序,而不需要经过实际的物理读盘操作。当然,如果数据在应用程序读取之前并未被存放在页缓存中),那么就需要先将数据从磁盘读到页缓存中去。

对于写操作来说,应用程序也会将数据先写到页缓存中去(这里所说的写到页缓存中,如果是调用标准库I/O进行写,那么首先是写到标准库的缓冲区内,如果标准库的缓冲区写满以后,在写到页缓冲内;如果是系统调用,那么直接写到页缓冲内)。

数据是否被立即写到磁盘上去取决于应用程序所采用的写操作机制:如果用户采用的是同步写机制,那么数据会立即被写回到磁盘上,应用程序会一直等到数据被写完为止;如果用户采用的是延迟写机制,那么应用程序就完全不需要等到数据全部被 写回到磁盘,数据只要被写到页缓存中去就可以了。

在延迟写机制的情况下,操作系统会定期地将放在页缓存中的数据刷到磁盘上。与异步写机制不同的是,延迟写机制在数据完全写到磁盘上得时候不会通知应用程序,而异步写机制在数据完全写到磁盘上得时候是会返回给应用程序的。所以延迟写机制本省是存在数据丢失的风险的,而异步写机制则不会有这方面的担心。

 

参考:

带缓冲I/O 和不带缓冲I/O的区别与联系-CSDN博客

理解标准I/O库的缓冲机制及应用-CSDN博客

unix系统编程小结(一)------文件I/O-neilhappy-ChinaUnix博客


 

相关文章:

Linux的缓存I/O和无缓存IO

一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域,存放用来接收用户输入和用于计算机输出的数据,以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作(标准IO操作)。为什么存在C标准I/O库…...

题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛

小蓝正在和朋友们团建,有一个游戏项目需要两人合作,两个人分别拿到一棵大小为 n 和 m 的树,树上的每个结点上有一个正整数权值 c 1 , c 2 , ⋅ ⋅ ⋅ , c n c_1, c_2, , c_n c1​,c2​,⋅⋅⋅,cn​, d 1 , d 2 , ⋅ ⋅ ⋅ , d m d_1, d_…...

从0到1入门Linux

一、常用命令 ls 列出目录内容 cd切换目录mkdir创建新目录rm删除文件或目录cp复制文件或目录mv移动或重命名文件和目录cat查看文件内容grep在文件中查找指定字符串ps查看当前进程状态top查看内存kill终止进程df -h查看磁盘空间存储情况iotop -o直接查看比较高的磁盘读写程序up…...

战略合作升级 | 大势智慧携手广西地测院,共绘智慧测绘新蓝图

2月26日,武汉大势智慧科技有限公司(以下简称“大势智慧”)与广西壮族自治区地理信息测绘院(以下简称“广西地测院”)在南宁举行战略合作升级签约仪式暨技术交流座谈会。 大势智慧董事长黄先锋与广西地测院党委书记、院…...

批量插入对比-mysql-oracle-sqlserver

单个插入mysql //单个 根据有值就插入&#xff0c;无值不改动 <insert id"insertOne" keyColumn"id" keyProperty"id"parameterType"com.test.log" useGeneratedKeys"true">insert into test_mysql_tab<trim p…...

jmeter阶梯式压测

1、安装plugins manager 链接 Install :: JMeter-Plugins.org 将下载下来的jar包放置在jemter文件的lib\ext下&#xff0c; 重启Jmeter 2、安装阶梯测试第三方插件 在Available Plugins中找到Custom Thread Groups&#xff0c;点击Apply Changes and Restart JMeter后等待插件…...

nginx.conf 完整配置总结概述

----------------------------------------------------------- /usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件 /usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx /usr/local/nginx/sbin/nginx -s stop # 停止 Nginx /usr/local/nginx/sbin/nginx …...

docker常规命令和高级用法

Docker 是一个强大的容器化平台&#xff0c;提供了丰富的命令和功能来管理容器、镜像、网络和存储等。以下是一些常用的 Docker 命令及其高级用法。 1. 容器管理 1.1 启动容器 基本用法&#xff1a; docker run <image_name>示例&#xff1a; docker run ubuntu高级用法…...

Spark核心之02:常用算子详解

1、RDD操作详解 # 启动spark-shell spark-shell --master local[2] 1.1 基本转换 1) map map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。 举例&#xff1a; scala> val a sc.parallelize(1 …...

【CSS—前端快速入门】CSS 常用样式

CSS 常用 CSS 样式 1. 前端样式查询网站&#xff1a; MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用&#xff1a; 2.2 border 常见属性 保存代码&#xff0c;打开页面&#xff1a; 对于标签不同样式的…...

探索DeepSeek-R1的核心秘诀:突破SFT技术的新篇章

摘要 近期&#xff0c;一种显著超越SFT&#xff08;Sequence-to-Sequence with Teacher Forcing&#xff09;的技术成为研究焦点。作为o1/DeepSeek-R1的核心秘诀&#xff0c;该技术不仅提升了模型性能&#xff0c;还成功应用于多模态大型模型中&#xff0c;实现了功能扩展。与传…...

DailyNotes 增加提醒功能

TODO&#xff1a;准备给 DailyNotes 增加一个提醒功能&#xff0c;准备接入 AI 来做一些事情。试了一下&#xff0c;非常靠谱。 具体 DailyNotes 和 Ollama 的交互方式&#xff0c;可以直接调用命令行&#xff0c;也可以走网络API。 rayuK2CD9WCYN4 ~ % ollama run deepseek-…...

[Computer Vision]实验六:视差估计

目录 一、实验内容 二、实验过程 2.1.1 test.py文件 2.1.2 test.py文件结果与分析 2.2.1 文件代码 2.2.2 结果与分析 一、实验内容 给定左右相机图片&#xff0c;估算图片的视差/深度&#xff1b;体现极线校正&#xff08;例如打印前后极线对&#xff09;、同名点匹配…...

软件测试基础:功能测试知识总结

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中…...

171. Excel 表列序号

Excel 表列序号 题目描述尝试做法推荐做法 题目描述 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: colum…...

03.05 QT事件

实现一个绘图工具&#xff0c;具备以下功能&#xff1a; 鼠标绘制线条。 实时调整线条颜色和粗细。 橡皮擦功能&#xff0c;覆盖绘制内容。 撤销功能&#xff0c;ctrl z 快捷键撤销最后一笔 程序代码&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET…...

es如何进行refresh?

在 Elasticsearch 中,refresh 操作的作用是让最近写入的数据可以被搜索到。以下为你介绍几种常见的执行 refresh 操作的方式: 1. 使用 RESTful API 手动刷新 你可以通过向 Elasticsearch 发送 HTTP 请求来手动触发 refresh 操作。可以针对单个索引、多个索引或者所有索引进…...

unity6 打包webgl注意事项

webgl使用资源需要异步加载 使用localization插件时要注意&#xff0c;webgl不支持WaitForCompletion&#xff0c;LocalizationSettings.InitializationOperation和LocalizationSettings.StringDatabase.GetTable都不能用 web里想要看到具体的报错信息调试开启这两个&#xf…...

【前端基础】Day 9 PC端品优购项目

目录 1. 品优购项目规划 1.1 网站制作流程 1.2 品优购项目整体介绍 1.3 学习目的 1.4 开发工具以及技术栈 1.5 项目搭建工作 1.6 网站favicon图标 1.7 网站TDK三大标签SEO优化 2. 品优购首页制作 2.1 常见模块类命名 2.2 快捷导航shortcut制作 2.3 header制作 2.4…...

【django初学者项目】

下面为你详细介绍如何创建一个简单有趣的 Django 项目——博客系统。这个项目允许用户创建、查看、编辑和删除博客文章。 步骤 1&#xff1a;环境准备 首先&#xff0c;确保你已经安装了 Python 和 pip。然后&#xff0c;创建一个虚拟环境并激活它&#xff0c;接着安装 Django…...

自学微信小程序的第十三天

DAY13 1、使用map组件在页面中创建地图后&#xff0c;若想在JS文件中对地图进行控制&#xff0c;需要通过地图API来完成。先通过wx.createMapContext()方法创建MapContext&#xff08;Map上下文&#xff09;实例&#xff0c;然后通过该实例的相关方法来操作map组件。 const m…...

gitbash忽略未追踪文件的解决方式

文章目录 问题描述&#xff0c;如下图解决方式 问题描述&#xff0c;如下图 因为这些事项目本地运行或者IDE环境配置时产生的文件或目录&#xff0c;手动删除后还来出现&#xff0c;怎么实现忽略不显示呢&#xff1f; 解决方式 查看项目的根目录下是否存在.gitignore文件&…...

React生态、Vue生态与跨框架前端解决方案

React生态系统 1 基础框架 React.js 是一个用于构建UI的JavaScript库。 2 应用框架 Next.js 是基于React.js的完整应用框架。主要负责应用如何工作&#xff1a; 应用架构&#xff1a;路由系统、页面结构渲染策略&#xff1a;服务端渲染(SSR)、静态生成(SSG)、客户端渲染性…...

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推荐指数&#xff1a;#paper/⭐⭐#​ 动机 本文探讨了图神经网络&#xff08;GNN&#xff09;在迁移学习中“预训练-微调”框架的局限性及改进方向。现有方法通过预训练&#xff08…...

【Elasticsearch】Elasticsearch 的`path.settings`是用于配置 Elasticsearch 数据和日志存储路径的重要设置

Elasticsearch 的path.settings是用于配置 Elasticsearch 数据和日志存储路径的重要设置&#xff0c;这些路径在elasticsearch.yml配置文件中定义。以下是关于 Elasticsearch 的路径设置&#xff08;path.data和path.logs&#xff09;以及快照存储库配置的详细说明&#xff1a;…...

使用vue3+element plus 的table自制的穿梭框(支持多列数据)

目录 一、效果图 二、介绍 三、代码区 一、效果图 话不多说&#xff0c;先上图 二、介绍 项目需要&#xff1a;通过穿梭框选择人员信息&#xff0c;可以根据部门、岗位进行筛选&#xff0c;需要显示多列&#xff08;不光显示姓名&#xff0c;还包括人员的一些基础信息&…...

学习笔记:IC存储总结(ROM,RAM, EEPROM, Flash, SRAM, DRAM, DDL)

一&#xff0c;概述 半导体存储器是一种可以存储大量二值信息的半导体器件。在电子计算机及一些其他的数字系统的工作过程中&#xff0c;需要对大量的数据进行储存。由于数据处理的数据量和运算速度的要求&#xff0c;因此把存储量和存取速度作为衡量存储器的重要指标。 在电子…...

本地部署pangolin获取谱系,从而达到预测新冠的流行趋势

步骤 1&#xff1a;安装Docker 注&#xff1a;此步骤忽略&#xff0c;可通过Docker官网对于文档进行安装,地址如下 Docker: Accelerated Container Application Developmenthttps://www.docker.com/ 步骤 2&#xff1a;拉取Pangolin镜像 docker pull staphb/pangolin:latest 步…...

【Python】文件File处理详细解释,附示例(文件操作、模式、编码、指针、调试、大文件处理、文件管理等)

文件 File 处理方法 1. 前言2. 文件基础操作2.1 文件打开与关闭2.2 with 语句(上下文管理器)3. 文件模式详解3.1 基础模式3.2 扩展模式4. 文件读写操作4.1 读取内容4.2 写入内容5. 文件指针和随机访问5.1 seek(offset.whence)5.2 二进制模式下的指针操作6. 文件编码处理6.1 指定…...

Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南

以下是 Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南&#xff1a; Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南 一、详细安装步骤1. 下载 Git 安装包2. 运行安装程序1. 双击安装包&#xff0c;按以下选项配置&#xff1a;2. 点击 Install 完成安装。 二…...

RabbitMQ的四种交换机

RabbitMQ交换机 什么是RabbitMQ RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用于在分布式系统中存储和转发消息。它基于 AMQP&#xff08;高级消息队列协议&#xff09;实现&#xff0c;支持多种消息传递模式&#xff0c;广泛应用于异步通信、应用解耦、负载均衡…...

探秘基带算法:从原理到5G时代的通信变革【一】引言

文章目录 一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究内容与创新点 本博客为系列博客&#xff0c;主要讲解各基带算法的原理与应用&#xff0c;包括&#xff1a;viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/DFT、QAMtiaozhi/解调、QPSK调制/解…...

ES中数据刷新策略refresh

在 Elasticsearch 中&#xff0c;插入数据时的 refresh 参数控制文档在写入后何时对搜索可见&#xff0c;其行为直接影响数据可见性和系统性能。以下是 refresh 参数的三个可选值&#xff08;true、false、wait_for&#xff09;的详细说明及适用场景&#xff1a; 1. refreshtr…...

【向量数据库Weaviate】 和Elasticsearch的区别

Weaviate 和 Elasticsearch 是两种不同类型的数据库&#xff0c;设计目标和应用场景有显著差异。以下是它们的核心区别和适用场景的详细对比&#xff1a; 1. 设计目标与核心能力 维度WeaviateElasticsearch核心能力向量数据库 图数据库&#xff08;语义搜索优先&#xff09;全…...

【Wireshark 02】抓包过滤方法

一、官方教程 Wireshark 官网文档 &#xff1a; Wireshark User’s Guide 二、显示过滤器 2.1、 “数据包列表”窗格的弹出过滤菜单 例如&#xff0c;源ip地址作为过滤选项&#xff0c;右击源ip->prepare as filter-> 选中 点击选中完&#xff0c;显示过滤器&#…...

【零基础到精通Java合集】第十五集:Map集合框架与泛型

课程标题:Map集合框架与泛型(15分钟) 目标:掌握泛型在Map中的键值类型约束,理解类型安全的键值操作,熟练使用泛型Map解决实际问题 0-1分钟:泛型Map的意义引入 以“字典翻译”类比泛型Map:明确键和值的类型(如英文→中文)。说明泛型Map的作用——确保键值对的类型一…...

三参数水质在线分析仪:从源头保障饮用水安全

【TH-ZS03】饮用水安全是人类健康的重要保障&#xff0c;其质量直接关系到人们的生命健康。随着工业化、城市化的快速发展&#xff0c;水体污染问题日益严峻&#xff0c;饮用水安全面临着前所未有的挑战。为了从源头保障饮用水安全&#xff0c;科学、高效的水质监测手段必不可少…...

Java8-Stream流介绍和使用案例

Java 8 引入了 Stream API&#xff0c;它提供了一种高效且声明式的方式来处理集合数据。Stream 的核心思想是将数据的操作分为中间操作&#xff08;Intermediate Operations&#xff09;和终端操作&#xff08;Terminal Operations&#xff09;&#xff0c;并通过流水线&#x…...

FieldFox 手持射频与微波分析仪

FieldFox 手持射频与微波分析仪 简述 Keysight FieldFox 便携式分析仪可以在非常恶劣的工作环境中&#xff0c;轻松完成从日常维护到深入故障诊断的各项工作。 选择最适合您需求且有强大软件支持的 Keysight FieldFox 配置。 主要特性 特点&#xff1a; FieldFox 分析仪可…...

JQuery学习笔记,点击按钮加载更多的图片

利用点击按钮模拟某京&#xff0c;某宝&#xff0c;滚动页面加载图片的效果&#xff0c;代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Ajax请求</title></head><body><button id…...

swift4-汇编分析枚举内存布局

一、枚举的内存原理 1.1 常规case enum TestEnum { case test1, test2, test3 } var t TestEnum.test1 t .test2 t .test3枚举是常规的case的情况-是采取一个字节来存枚举变量通过拿到枚举的内存地址&#xff0c;看地址里面存的枚举值情况窥探枚举内存存储情况 var t Te…...

Vue 3 整合 WangEditor 富文本编辑器:从基础到高级实践

本文将详细介绍如何在 Vue 3 项目中集成 WangEditor 富文本编辑器&#xff0c;实现图文混排、自定义扩展等高阶功能。 一、为什么选择 WangEditor&#xff1f; 作为国内流行的开源富文本编辑器&#xff0c;WangEditor 具有以下优势&#xff1a; 轻量高效&#xff1a;压缩后仅…...

Docker安装嵌入框架Text Embeddings Inference (TEI)

Docker安装Text Embeddings Inference (TEI) 1 简单介绍 文本嵌入推理&#xff08;TEI&#xff0c;Text Embeddings Inference &#xff09;是HuggingFace研发的一个用于部署和服务开源文本嵌入和序列分类模型的工具包。TEI兼容OpenAI的嵌入模型的规范。 # 官网地址 https:/…...

【HeadFirst系列之HeadFirst设计模式】第14天之与设计模式相处:真实世界中的设计模式

与设计模式相处&#xff1a;真实世界中的设计模式 设计模式是软件开发中的经典解决方案&#xff0c;它们帮助我们解决常见的设计问题&#xff0c;并提高代码的可维护性和可扩展性。在《Head First设计模式》一书中&#xff0c;作者通过生动的案例和通俗的语言&#xff0c;深入…...

java后端开发day27--常用API(二)正则表达式爬虫

&#xff08;以下内容全部来自上述课程&#xff09; 1.正则表达式&#xff08;regex&#xff09; 可以校验字符串是否满足一定的规则&#xff0c;并用来校验数据格式的合法性。 1.作用 校验字符串是否满足规则在一段文本中查找满足要求的内容 2.内容定义 ps&#xff1a;一…...

【UCB CS 61B SP24】Lecture 22 23: Tree and Graph Traversals, DFS, BFS 学习笔记

本文讲解了二叉树的四种遍历方式&#xff0c;以及如何通过前/后序遍历与中序遍历重建出二叉树&#xff0c;接着介绍了新的非线性数据结构&#xff1a;图&#xff0c;详细讲解了图的存储方式与遍历方式&#xff0c;最后使用 Java 基于邻接表的存储方式实现了图与 DFS、BFS 两种遍…...

Redis100道高频面试题

一、Redis基础 Redis是什么&#xff1f;主要应用场景有哪些&#xff1f; Redis 是一个开源的、基于内存的数据结构存储系统&#xff0c;支持多种数据结构&#xff08;如字符串、哈希、列表、集合等&#xff09;&#xff0c;可以用作数据库、缓存和消息中间件。 主要应用场景&…...

Mac OS Homebrew更换国内镜像源(中科大;阿里;清华)

omebrew官方的源一般下载包之类的会很慢&#xff0c;所以通常我们都是用国内的镜像源来代替&#xff0c;这样会提高我们的效率。Homebrew主要有四个部分组成: brew、homebrew-core 、homebrew-bottles、homebrew-cask。 代码语言&#xff1a;javascript 代码运行次数&#xf…...

excel vlookup的精确查询、模糊查询、反向查询、多列查询

目录 入门 精确查询 模糊查询 反向查询 (搭配 if 函数) 多列查询 (搭配 match 函数) 入门 精确查询 需求: 查找 学生编号是008 所在的班级 操作: 在I2单元格输入公式如下,VLOOKUP(H2,B1:E12,4,FALSE), 得出结果 看一下vlookup 公式每一个参数应该怎么写? 语法: vlookup…...

linux的文件系统及文件类型

目录 一、Linux支持的文件系统 二、linux的文件类型 2.1、普通文件 2.2、目录文件 2.3、链接文件 2.4、字符设备文件: 2.5、块设备文件 2.6、套接字文件 2.7、管道文件 三、linux的文件属性 3.1、关于权限部分 四、Linux的文件结构 五、用户主目录 5.1、工作目录…...