我正在实现一个基于FUSE的文件系统(osxfuse,实际上,因为它在Mac上),我注意到在create或mkdir调用之前总是调用getattr,如果一个节点已经存在,则创建/ mkdir不会调用。 问题是,我可以依赖此行为而不检查create / mkdir中是否存在?
答案 0 :(得分:1)
我最好检查文件是否存在导致(a)操作系统行为在将来会发生变化(即你的简化会在以后发挥低调技巧),并且(b)通常有可能在文件外部创建文件您的FS在后端存储上。在后一种情况下,您依赖的是不再有效的状态。