NFS 创建文件(覆盖)= 零大小?
Posted
技术标签:
【中文标题】NFS 创建文件(覆盖)= 零大小?【英文标题】:NFS CREATE File (overwrite) = zero size? 【发布时间】:2009-09-19 16:25:18 【问题描述】:我正在实施 NFS,几乎完成了,但 RFC section 3.3.8 在其描述中这样说:
模式 不受检查、受保护和排他性之一。 未选中 意味着应该在不检查的情况下创建文件 同一文件中是否存在重复文件 目录。在这种情况下,how.obj_attributes 是 sattr3 描述文件的初始属性。 GUARDED 指定服务器应检查是否存在 在执行创建和复制文件之前 应该使用 NFS3ERR_EXIST 使请求失败,如果 存在重复文件。如果文件不存在,则 请求按照 UNCHECKED 的描述执行。 EXCLUSIVE 指定服务器要跟随 独占创建语义,使用验证器 确保独家创建目标。没有属性 在这种情况下可以提供,因为服务器可以使用 用于存储 createverf3 的目标文件元数据 验证者。
所以如果 UNCHECKED 是模式的问题,我应该将文件的长度设置为零还是应该让文件保持原样?如果它是一个目录,我应该删除所有内容吗?
【问题讨论】:
【参考方案1】:我相信CREATE
和UNCHECKED
的想法是应用良好的旧Unix 系统调用creat
的语义——因此,暗示了文件现有内容(如果有)的截断。但是,我在文档中找不到所有明确的说明(!)。
尝试CREATE
一个现有的目录 在任何情况下都是错误的——有一个单独的MKDIR
(在 NFS 3 中,这同样适用于特殊文件,MKNOD
-- CREATE
现在只用于常规、普通、普通的旧 文件!-)
【讨论】:
以上是关于NFS 创建文件(覆盖)= 零大小?的主要内容,如果未能解决你的问题,请参考以下文章