0

我实现了 NFS 并且几乎完成了,但是RFC 第 3.3.8 节在其描述中说明了这一点:

UNCHECKED、GUARDED 和 EXCLUSIVE 模式之一。UNCHECKED 意味着应该在不检查同一目录中是否存在重复文件的情况下创建文件。在这种情况下,how.obj_attributes 是描述文件初始属性的 sattr3。GUARDED 指定服务器应在执行创建之前检查是否存在重复文件,如果存在重复文件,则应使用 NFS3ERR_EXIST 使请求失败。如果文件不存在,则按照 UNCHECKED 的描述执行请求。EXCLUSIVE 指定服务器遵循独占创建语义,使用验证器确保目标独占创建。在这种情况下可以不提供任何属性,因为服务器可以使用目标文件元数据来存储 createverf3 验证器。

所以如果 UNCHECKED 是模式的问题,我应该将文件的长度设置为零还是应该让文件保持原样?如果它是一个目录,我应该删除所有内容吗?

4

1 回答 1

3

CREATE我相信with的想法UNCHECKED是应用良好的旧 Unix 系统调用的语义creat——因此,暗示了文件现有内容(如果有)的截断。但是,我无法在文档(!)中明确指定所有内容。

在任何情况下,尝试访问CREATE现有目录都是错误的 - 有一个单独MKDIR的(在 NFS 3 中,这同样适用于特殊文件,其中MKNOD-CREATE现在仅适用于常规、正常、普通的旧文件!-)

于 2009-09-19T16:38:36.780 回答