【发布时间】:2016-12-28 01:27:06
【问题描述】:
我知道 unix 系统中的文件是由它们的 inode 表示的。
作为用户,我可以访问这些值并进行更改吗?
说,替换两个相邻块之间的值,这样改文件?
我可以只覆盖中间的一个块吗?
我是在 C 中文件操作的上下文中提出这个问题的(我想编写一个附加到文件开头或中间部分的程序,而不仅仅是结尾)。
【问题讨论】:
我知道 unix 系统中的文件是由它们的 inode 表示的。
作为用户,我可以访问这些值并进行更改吗?
说,替换两个相邻块之间的值,这样改文件?
我可以只覆盖中间的一个块吗?
我是在 C 中文件操作的上下文中提出这个问题的(我想编写一个附加到文件开头或中间部分的程序,而不仅仅是结尾)。
【问题讨论】:
用户可以使用stat() 系统调用读取访问其中一些信息,前提是他对包含inode 的目录具有适当的访问权限。
信息只能间接更改(时间戳,例如,通过访问文件本身)。没有direct 的方式来处理这些信息。
某些文件系统可能会通过在ioctl() 调用中公开一些信息来提供更多访问可能性。可能会或可能不会暴露的是驱动程序/文件系统开发人员的决定。
【讨论】: