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