+ -
当前位置:首页 → 问答吧 → 读写普通文件和设备文件过程的区别?

读写普通文件和设备文件过程的区别?

时间:2010-07-15

来源:互联网

请教下:我的系统将flash划出一块作为设备进行读写操作,那么读写这个设备文件和读写普通文件时,从应用层的系统调用如read,write,经过内核,再到驱动,这个过程中,函数调用的步骤,哪些相同,哪些不同呢??能够详解解释下?另外设备文件通过只读文件系统为啥也可以写呢?

作者: hnzpzg   发布时间: 2010-07-15

首先读写文件的过程确实是一个复杂漫长的过程,LZ有时间分析一下LINUX虚拟文件系统VFS,,
一般来说设备文件是虚拟文件,也就是说它只存在于内存中,,不过普通文件 比如在硬盘上的文件或
其他存储介质的文件就是实实在在的文件了。

作者: wmmy2008   发布时间: 2010-07-15

LZ可以看看《 情景分析》一书, 里面有调用过程解析

作者: openspace   发布时间: 2010-07-15

假设有一个块设备 /dev/sda2  文件系统是ext3 里面有很多文件
如果dd if=/dev/sda2 of=sda.raw bs=1024 count=1024 这是从sda2这个块设备拷贝
1M字节放在sda.raw这个文件 这个过程是不经过文件系统层的
而如果通过open一个文件 然后操作这个read write这个文件 是要经过文件系统层的
愚见 不代表正确

作者: 木叉叉木大   发布时间: 2010-07-16

在应用层调用两种普通文件和设备文件都一样,没什么区别

作者: linux初学三月   发布时间: 2010-07-16