LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 976|回复: 7

怎样指定文件在磁盘中的位置?

[复制链接]
发表于 2007-4-17 22:27:33 | 显示全部楼层 |阅读模式
就是我创建一个文件之后,我想指定文件在磁盘的位置,比如哪个块?不知有没有这样的接口?
谢谢!
发表于 2007-4-18 00:10:12 | 显示全部楼层
估计不行,直接访问硬件一般是禁止的。
回复 支持 反对

使用道具 举报

发表于 2007-4-18 08:45:04 | 显示全部楼层
Post by wcw
就是我创建一个文件之后,我想指定文件在磁盘的位置,比如哪个块?不知有没有这样的接口?
谢谢!
你用一下dd这个命令去试试
回复 支持 反对

使用道具 举报

发表于 2007-4-18 09:14:54 | 显示全部楼层
打开/dev/hda设备后,用write写。
回复 支持 反对

使用道具 举报

发表于 2007-4-18 09:40:04 | 显示全部楼层
只能直接操作/dev/hdX或/dev/sdX了,不过LZ要考虑好后果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-18 12:17:16 | 显示全部楼层
可能是我没说清楚,我的意思是我创建了新文件a,现在我想把磁盘(分区)上的某一块(或几块)block的内容赋给a,但是不通过拷贝,即通过改文件a的元信息(如果还有其它途径的话),因为创建文件时文件系统首先创建的是文件的元信息,这些信息里面包括了文件在文件系统(或磁盘)中的位置还有文件大小等等很多东西(这些信息可以用stat()得到),那我们能不能修改这些元信息中的关于文件磁盘位置的信息,并使他指向我们指定的位置?这样的效果是刚创建的空文件,通过修改其元信息,使到它获取了内容。

这样的操作感觉就像在内存中,改变指针p使它指向内存的某个位置,而不是把内存的某个位置的内容拷贝到指针p当前的位置。

不知有没有这样的办法?
回复 支持 反对

使用道具 举报

发表于 2007-4-18 13:07:51 | 显示全部楼层
omg, u r crazy
回复 支持 反对

使用道具 举报

发表于 2007-4-18 14:47:24 | 显示全部楼层
应该是知道了所安装的文件系统的类型以后,并且精通该文件系统的布局和结构,open了/dev/hdX文件之后,用lseek以及read和write就能够做到的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表