免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3147 | 回复: 4
打印 上一主题 下一主题

[应用] 读写普通文件和设备文件过程的区别? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-15 09:15 |只看该作者 |倒序浏览
请教下:我的系统将flash划出一块作为设备进行读写操作,那么读写这个设备文件和读写普通文件时,从应用层的系统调用如read,write,经过内核,再到驱动,这个过程中,函数调用的步骤,哪些相同,哪些不同呢??能够详解解释下?另外设备文件通过只读文件系统为啥也可以写呢?

论坛徽章:
0
2 [报告]
发表于 2010-07-15 14:18 |只看该作者
首先读写文件的过程确实是一个复杂漫长的过程,LZ有时间分析一下LINUX虚拟文件系统VFS,,
一般来说设备文件是虚拟文件,也就是说它只存在于内存中,,不过普通文件 比如在硬盘上的文件或
其他存储介质的文件就是实实在在的文件了。

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2010-07-15 15:55 |只看该作者
LZ可以看看《 情景分析》一书, 里面有调用过程解析

论坛徽章:
0
4 [报告]
发表于 2010-07-16 10:33 |只看该作者
假设有一个块设备 /dev/sda2  文件系统是ext3 里面有很多文件
如果dd if=/dev/sda2 of=sda.raw bs=1024 count=1024 这是从sda2这个块设备拷贝
1M字节放在sda.raw这个文件 这个过程是不经过文件系统层的
而如果通过open一个文件 然后操作这个read write这个文件 是要经过文件系统层的
愚见 不代表正确

论坛徽章:
0
5 [报告]
发表于 2010-07-16 20:53 |只看该作者
在应用层调用两种普通文件和设备文件都一样,没什么区别
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP