在LINUX下,如何判断某个文件在磁盘上是顺序存储的还是非顺序存储的?
各位有没有什么好的小工具或相关代码没,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
各位有没有什么好的小工具或相关代码没,谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
回复 1# qqrilxk
It depends on the size of file and the type of FileSystem, so no precise answer.
谢谢楼上回复.在LINUX下文件系统就是EXT3了.这和文件大小关系不大吧,小于512字节的当然是顺序存储的,大于512字节的,就需要判断一下.需要有相关工具或源码啊.
分析一下ext3的源码!
只能自己写代码实现了
有谁能给个代码啊?厚着脸皮问一下 :)
首先看一下文件的大小,如果小于磁盘上一个块的大小,肯定就是顺序的.如果大于的话,就有点麻烦了,如果你懂得文件存储的原则,得出结果也不是很困难.
你可以写个应用程序调出内核中的文件inode结构体中的前几个数,看看是不是连续的就行了,当然还得考虑到如果文件大于7个块的话的扩展性问题.
如果实现不了上述应用,自己增加个系统调用,重编内核,不过这个问题说的有点大了,说是容易,实现太不容易,并且偏离你的问题有点远,不好意思,我有点扯了O(∩_∩)O哈哈~
debugfs: bmap 命令可以看数据块的具体位置。