NFS CREATE文件(覆盖)=零大小?

时间:2009-09-19 16:25:19

标签: rpc nfs rfc

我正在实施NFS和almoste,但RFC section 3.3.8在其描述中说明了这一点:

  

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

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

1 个答案:

答案 0 :(得分:3)

我认为CREATEUNCHECKED的想法是应用良好的旧Unix系统调用creat的语义 - 因此,截断文件的现有内容(如果有的话)是默示。但是我无法在docs(!)中清楚地找到这一切。

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