linux下读写设备文件问题。

linux下读写设备文件问题。,第1张

linux下面你的应用程序read读取出来的是驱动程序中通过内核返回给你的值。如果你想让鼠标和触摸屏的设备文件读出来是坐标或者是别的什么,你需要更改驱动程序,让驱动返回给你你想要的值,在驱动中使用copy_to_user这个函数就可以了,或者自己测试一些。因为我并没有试过直接去读鼠标等设备文件,但是原理这样的。

Linux不直接支持NTFS文件系统,如果U盘是NTFS文件系统就无法直接挂载使用。首先用lsblk列出所有块设备:

1

lsblk

sd表示SCSI磁盘,后面跟a,b,c之类的字母表示第几个磁盘,字母之后再跟数字表示这个磁盘的第几个分区。大部分人只有一个硬盘,此时再接一个U盘,这个U盘就是sdb,U盘上的分区就是sdb1。除此以外,还可以根据显示的容量判断U盘设备名是sdb还是sdc。其他情况以此类推。

然后可以在用户目录创建一个usb目录:(也可以根据喜好设置在其他地方,下面的挂载地址跟着改变即可)

1

mkdir ~/usb1

最后把U盘分区挂载到这个目录即可:(可能会提示输入密码,输入密码后回车即可)

1

sudo mount /dev/sdb1 ~/usb1

然后就可以通过访问 ~/usb1目录来访问U盘:

1

2

cd ~/usb1

ls

最后要拔出U盘以前,要卸载U盘:(卸载时要退出usb1目录,不然无法卸载)(可能会提示输入密码,输入密码后回车即可)

Linux系统文件 *** 作主要是通过块设备驱动来实现的。 块设备主要指的是用来存储数据的设备,类似于SD卡、U盘、Nor Flash、Nand Flash、机械硬盘和固态硬盘等。块设备驱动就是用来访问这些存储设备的,其与字符设备驱动不同的是:

块设备只能以块为基本单位实现读写,块是 linux 虚拟文件系统(VFS)基本的数据传输单位。字符设备是以字节为单位进行数据传输的,不需要缓冲。

块设备在结构上是可以进行随机访问的,对于这些设备的读写都是按块进行的,块设备使用缓冲区来暂时存放数据,等到条件成熟以后在一次性将缓冲区中的数据写入块设备中;字符设备是按照字节进行读写访问的。不需要缓冲区,对于字符设备的访问都是实时的,而且也不需要按照固定的块大小进行访问。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11624257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存