Chinaunix
标题:
讨论一个关于设备文件的问题
[打印本页]
作者:
rick_cheung
时间:
2012-07-14 22:19
标题:
讨论一个关于设备文件的问题
今天突然想到一个问题:
如果dev/char是一个字符设备文件,那么用fd=open(/dev/block);之后直接对这个fd进行read/write 肯定是对这个字符设备的顺序读写,
但是,如果/dev/block是一个块设备文件 用fd=open(/dev/block);之后直接对这个fd进行read/write,是什么效果呢?
作者:
linuxfellow
时间:
2012-07-14 22:40
本帖最后由 linuxfellow 于 2012-07-14 22:40 编辑
回复
1#
rick_cheung
如果只从执行结果来看,没有区别。
从用户的API角度来看,char device不支持llseek(),只能顺序读,不能定位;block device支持llseek(),可以从中间某个地方开始读。
从驱动实现的角度来看,char device的f_ops[]直接作用于驱动;block device的f_ops[]基本上是空的,一切通过gendisk代理实现。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2