打印
[嵌入式linux]

请问怎样理解 "字符设备的不支持随机访问"?

[复制链接]
1478|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlfdan|  楼主 | 2013-10-19 12:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xlfdan 于 2013-10-19 12:49 编辑

大家好!

请问怎样理解 "字符设备不支持随机访问"? EEPROM(如24C02等)是字符设备,你可以先读取24C02的0x08地址的数据, 紧接着再读取24C02的0x24地址内的数据,  这样它也能够被随机访问啊,  这个和 "字符设备不支持随机访问" 相矛盾, 为何?

谢谢。

相关帖子

沙发
airwill| | 2013-10-22 16:32 | 只看该作者
字符设备 和 块设备都是操作系统里定义的设备.
最典型的字符设备是键盘, 以数据流的方式依次访问.
EEPROM(如24C02等),你没有采用 Windows(DOS,Linux)  的标准设备操作.才实现了 随机访问.
也就是说 "字符设备" 是 fread()  fwrite() 访问的设备.

使用特权

评论回复
板凳
xlfdan|  楼主 | 2013-10-25 20:40 | 只看该作者
我是把 EEPROM(如24C02等) 当做一个字符设备来写了个驱动文件,

使用 read(fd, buffer, 0)
     write(fd, buffer, 32)
来访问 24C02,

请问在linux下面, 是不是通过这2个函数读写的设备都是 字符设备?

谢谢.

使用特权

评论回复
地板
香水城主| | 2013-10-25 22:20 | 只看该作者
所谓字符设备或块设备的说法,都是指从应用程序层面看到的,而不是从设备驱动的角度看到的。

比如你可以使用RAM DISK,就是把一块RAM区当磁盘使用,对于应用程序来说这是一个块设备,但物理上看RAM是可以随机读写的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝