我正在实施NFS和almoste,但RFC section 3.3.8在其描述中说明了这一点:
模式 UNCHECKED,GUARDED和EXCLUSIVE之一。的 UNCHECKED 表示应该在不检查的情况下创建文件 因为同一个文件中存在重复文件 目录。在这种情况下,how.obj_attributes是一个sattr3 描述文件的初始属性。保护 指定服务器应检查是否存在 执行create和之前的重复文件 如果a,应该使用NFS3ERR_EXIST使请求失败 存在重复文件。如果该文件不存在,则 请求按照UNCHECKED的描述执行。 EXCLUSIVE指定服务器要遵循 独占创建语义,使用验证器 确保独家创建目标。没有属性 在这种情况下可以提供,因为服务器可以使用 用于存储createverf3的目标文件元数据 验证
所以,如果UNCHECKED是模式的问题,我应该将文件的长度设置为零,还是应该让文件保持原样?如果它的目录应该删除所有内容?
答案 0 :(得分:3)
我认为CREATE
与UNCHECKED
的想法是应用良好的旧Unix系统调用creat
的语义 - 因此,截断文件的现有内容(如果有的话)是默示。但是我无法在docs(!)中清楚地找到这一切。
尝试CREATE
现有的目录在任何情况下都是错误的 - 对此有一个单独的MKDIR
(在NFS 3中,同样适用于特殊文件,使用MKNOD
- CREATE
现在仅适用于常规,普通,简单的旧文件! - )