社区
驱动开发/核心开发
帖子详情
字符设备文件的读写
Panda_熊猫
2013-03-29 05:24:07
我想select监听,我的ubuntu下的键盘对应的设备文件,假设是/dev/input/event2
检测到文件描述符 '可读'时,read。
select系统调用中 文件描述符的 '可读'是什么意思:
应该跟文件权限的'可读' 不是一回事
指的是有东西可读取? 如果是,那么,如果我'读取'了,它会变得不再'可读取',才对吧。否则的话,select应该一直返回'可读'。
我的疑问就是,字符设备是否是读过一次后,就没有可读信息了? 这样我才可以select呀
...全文
268
1
打赏
收藏
字符设备文件的读写
我想select监听,我的ubuntu下的键盘对应的设备文件,假设是/dev/input/event2 检测到文件描述符 '可读'时,read。 select系统调用中 文件描述符的 '可读'是什么意思: 应该跟文件权限的'可读' 不是一回事 指的是有东西可读取? 如果是,那么,如果我'读取'了,它会变得不再'可读取',才对吧。否则的话,select应该一直返回'可读'。 我的疑问就是,字符设备是否是读过一次后,就没有可读信息了? 这样我才可以select呀
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Panda_熊猫
2013-03-29
打赏
举报
回复
什么是字符流? 读取了,就没有了? 万一发生抢占怎么办,一人读了一半会不会发生。 比如上面的 读取字符设备情况
字符设备
驱动基础-linux驱动开发第2部分
本课程是linux驱动开发的第2个课程,从零开始带领大家逐渐熟悉内核模块,并且一步步写出一个
字符设备
驱动程序来控制LED等。本课程对驱动的学习非常重要,是驱动学习的入门阶段。
Linux驱动学习(4-
字符设备
-自动创建
字符设备
并
读写
)
Linux驱动学习(4-
字符设备
-自动创建
字符设备
并
读写
)
Linux特殊设备
文件
(
字符设备
文件
和块设备
文件
)(/dev/null、/dev/zero、/dev/full、/dev/tty、/dev/fd)(主设备号和次设备号)
在Linux中,每个硬件设备都被视为一个
文件
,这些特殊的设备
文件
通常位于/dev目录下。这是因为在UNIX哲学中有一种思想,那就是“一切皆
文件
”。这样的设计让操作系统的交互更加统一和简洁。设备
文件
主要分为两种类型:
字符设备
文件
和块设备
文件
。
字符设备
文件
(Character Device Files):它们表示可以以字节为单位进行
读写
的设备。块设备
文件
(Block Device Files):它们表示可以以块为单位进行
读写
的设备。
字符设备
的
读写
在应用程序看来,
字符设备
只是一个设备
文件
,应用程序可以像操作普通
文件
一样对硬件设备进行操作。应用层对设备的操作都在设备驱动程序的file_operations结构中有对应的接口,比如应用层的read函数对应驱动层的file_operations-> read,而应用层的write函数对应驱动层的file_operations-> write。本节介绍
字符设备
内核空间与用户空间数据交互的方法。
字符设备
与块设备
块设备:对块设备的
读写
需要通过OS的缓冲区(Buffer),它可以被MOUNT到
文件
系统中。块设备
文件
用来同外设进行定长的包传输,它使用了Cache机制,在外设和内存之间一次可以传送一整块数据。裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过
文件
系统来读取的特殊
字符设备
。裸设备使用字符特殊
文件
,它由应用程序负责对它进行
读写
操作,不经过
文件
系统的缓冲。
字符设备
:对
字符设备
的
读写
不需要通过OS的缓冲区(Buffer),它不可被
文件
系统MOUNT。
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章