news 2026/4/3 5:21:41

文件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/31 20:53:50

微信小程序uniapp+vue在线答疑问答app

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

作者头像 李华
网站建设 2026/4/3 2:10:55

【Linux】进程控制(2)进程等待

hello~ 很高兴见到大家! 这次带来的是Linux系统中关于进程控制这部分的一些知识点,如果对你有所帮助的话,可否留下你宝贵的三连呢? 个 人 主 页: 默|笙 文章目录 一、进程等待1.1 进程等待的必要性1.2 进程等待的方法1. wait方法2. waitpid方法阻塞等待vs非阻塞等待 3. 获取子…

作者头像 李华
网站建设 2026/3/29 11:18:34

计算机Java毕设实战-基于springboot的公司财务预算管理系统企业级财务管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华