news 2026/4/18 5:18:00

文件IO之文件基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
文件IO之文件基础
  • Linux的基本思想有两点:
    • 第一,一切皆是文件
    • 第二,每个文件都有确定的用途
  • 其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等
  • 第二条意思是对于操作系统内核而言,每种不同的文件需要表现它拥有各自特性或类型

文件类型

  • 七种文件类型:
      1. 常规文件:文本文件、二进制文件、可执行文件、汇编文件等
      1. 目录文件 d 俗称文件夹
      1. 字符设备文件 c
      1. 块设备文件 b:硬件驱动操作硬件,通过设备文件调用(块设备、字符设备),设备文件在/dev路径下
      1. 管道文件 p
      1. 套接字文件 s:进程间通信方式,通常是以二进制读写文件方式传输消息
      1. 符号链接文件

系统调用

  • 应用程序与系统内核的关系:应用程序与操作系统不直接进行“交互”,操作系统提供系统调用,供用户态程序请求操作系统服务的一种机制。是操作系统与应用程序的“媒介”

  • 普通的应用程序在用户空间运行,总是需要可以和内核空间之间交换数据。一些I/O操作的指令都被限制在只有内核模式可以执行,为了操作系统的安全问题,操作系统有必要提供封装了系统调用的接口函数来为应用程序提供诸如读取磁盘某位置的数据的功能,这些接口就被称为系统调用函数,简称系统调用(System calls)
  • 系统调用使得用户空间可以和内核空间之间安全的交换数据,也使得运行中系统是安全与稳定的。 系统调用大多和硬件、内核版本强耦合,这同时就给程序的可移植性带来了阻碍
  • 主要作用:
    • 保护核心程序、数据
    • 屏蔽底层差异(系统、汇编指令等)

IO口

  • l/O 接口是设备与系统之间的桥梁
  • 从物理与抽象的角度区分,将嵌入式I/O(Input/Output)的理解为IO设备和IO接口函数两个部分:
    • 所谓的 IO设备——具体的可以实现“输入输出”效果的硬件:
      • I input 输入设备,比如键盘、鼠标
      • O output 输出设备,比如显示器
      • 例如:U盘,网口,既是输入也是输出
    • IO接口函数——专用协议,常规操作接口:
      • IO接口实现的主要功能作用包括数据传输、信号转换、设备控制
      • IO接口的应用场景涉及的类型、范围广泛,使得系统、硬件之间的应用编程更便捷高效

库函数

  • 一些IO接口的实现,直接与硬件设备、系统内核密切相关,例如系统调用函数
  • 一些IO接口的实现侧重屏蔽底层差异,提供兼容性更广的应用编程的数据交换方法(接口),例如C库函数

  • 将系统调用封装成抽象的功能函数,起到隔离保护的作用。
  • 库函数(Library function)是在函数内部调用该系统的系统调用接口,并封装入库供用户使用的应用编程接口函数。 库函数的优点在于提高了代码的复用性和可维护性。通过使用现成的库函数,程序员可以避免重复编写相同的代码,同时也能确保代码的正确性、安全性和可移植性。例如,printf就是库函数,然后调用了系统调用才在指定的显示器上显示字符
  • 应用编程接口函数:
    • 简称API(Application Programming Interface),封装一些常见的编程操作、系统调用的应用层函数

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 2:50:17

PCIe-1 DW 的 Read Request

对于第一条 "如果1 DW的Read Request指定未启用任何字节读取(1st DW BE[3:0] = 0000b),则相应的Completion必须指定1 DW的长度,并包括1 DW的数据有效载荷。未指定Completion packet中数据有效载荷的内容,可以是任何值。" 看似矛盾的规则实际上有几个重要目的: …

作者头像 李华
网站建设 2026/4/15 19:38:39

微信小程序uniapp+vue云健身房课程预约系统

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

作者头像 李华
网站建设 2026/4/13 22:35:53

微信小程序uniapp+vue房屋租赁房东预约看房系有问题统

文章目录 具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1…

作者头像 李华
网站建设 2026/4/8 21:31:23

Vue3 进阶,新特性 defineOptions/defineModel+Pinia 状态管理全解析

Vue3.3 新增了defineOptions、defineModel等实用语法糖,而Pinia则是 Vue3 官方推荐的状态管理工具(替代 Vuex)。 一、Vue3.3 新特性:语法糖简化开发 Vue3.3 推出了多个语法糖,核心是减少模板代码、提升开发效率。 …

作者头像 李华
网站建设 2026/4/16 9:29:18

微信小程序uniapp+vue医院物资管理系统医护人员管理

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

作者头像 李华
网站建设 2026/4/17 16:26:52

49、图像的相关知识

图像的分类按照颜色和灰度来分类,被分为4种基本分类二值图像: 只有01构成只有黑白两色灰度图像:[0,255] :0表示纯黑色,255表示纯白色。中间的就是黑到白的过渡色索引图像:二维矩阵 颜色索引矩阵map的二维数组&#xf…

作者头像 李华