基于VS2019 C++的跨平台(Linux)开发(1.2)——设备管理及文件IO

一、引言

  • 理解设备和文件的关系
  • 理解系统调用和系统API等关系
  • 掌握系统调用的工作过程
  • 掌握系统调用open/read/write/fcntl等使用

二、Linux中的设备管理

1、设备无关性

为了提高操作系统的可适应性和可扩展性,目前几乎所有的操作系统都实现了设备的独立性

概念:Linux采用文件系统管理硬件设备,所有的设备都看成是特殊的文件(目录、套接字也可以是文件),从而将硬件设备的特性及管理细节对用户隐藏起来,实现设备无关性。

如何理解Linux采用文件系统管理硬件设备?
硬件设备是指显示器、鼠标、键盘等,而这些硬件设备在Linux中是以文件系统存在

2、设备管理的特点

  • 每个设备都对应文件系统中的一个索引节点,都有一个文件名。对设备的使用类似于对文件的存取。
  • 应用程序通常可以通过系统调用open()打开设备文件,建立起与目标设备的连接。
  • 设备驱动程序都是系统内核的一部分,它们必须为系统内核或者它们的子系统提供一个标准的接口,他们使用一些标准的内核服务,如内存分配等。

3、设备分类

  • 按设备信息交换单位来分:字符设备、块设备
  • 按设备属主关系:系统设备、用户设备。
  • 按设备共享属性来分:独享设备、共享设备(打印机,U盘)。

 4、Linux设备操作

设备或文件操作的两种方式:用户编程接口 API、系统调用。如下图

三、系统调用

系统调用是操作系统提供给用户的一组“特殊”接口用户态主动要求切换到内核态,从而使用内核提供的各项服务,运行后将结果返回给应用程序(内核态–>用户态)。比如,Linux创建进程时中用户态的fork()会调用到内核态的sys_fork()do_fork()等。

1、函数库调用与系统调用区别
 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ze言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值