使用 FUSE 写入 FS,当 cat>a 时函数未实现错误

Writing FS with FUSE, function not implemented error when `cat>a`

我正在用FUSE写FS,下面是我实现的功能:

createopenreadwritereleaseunlinkmkdiropendirreaddir releasedir rmdir getattr rename

一切正常,除了这种情况:当我第一次尝试 cat>a 时(当文件仍然不存在时)它工作正常:创建 "a" 并让我在其中写一些东西。

但是当我再次输入时 cat>a 它告诉我 -bash: a: Function not implemented。 (当我尝试使用 nano a 修改文件时出现类似的消息,它打开让我写入,但在尝试保存修改后,相同的消息出现在 nano 中)

可能是什么原因?我可能缺少哪个功能?或者哪个功能可能实现不正常?

除非挂载是使用 atomic_o_trunc 选项完成的,否则您需要使用 O_TRUNCopen() 实现 truncate()(就像打开文件时使用 > 而不是 >>) 才能成功。