使用 FUSE 写入 FS,当 cat>a 时函数未实现错误
Writing FS with FUSE, function not implemented error when `cat>a`
我正在用FUSE写FS,下面是我实现的功能:
create
open
read
write
release
unlink
mkdir
opendir
readdir
releasedir
rmdir
getattr
rename
一切正常,除了这种情况:当我第一次尝试 cat>a
时(当文件仍然不存在时)它工作正常:创建 "a" 并让我在其中写一些东西。
但是当我再次输入时 cat>a
它告诉我 -bash: a: Function not implemented
。 (当我尝试使用 nano a
修改文件时出现类似的消息,它打开让我写入,但在尝试保存修改后,相同的消息出现在 nano
中)
可能是什么原因?我可能缺少哪个功能?或者哪个功能可能实现不正常?
除非挂载是使用 atomic_o_trunc
选项完成的,否则您需要使用 O_TRUNC
为 open()
实现 truncate()
(就像打开文件时使用 >
而不是 >>
) 才能成功。
我正在用FUSE写FS,下面是我实现的功能:
create
open
read
write
release
unlink
mkdir
opendir
readdir
releasedir
rmdir
getattr
rename
一切正常,除了这种情况:当我第一次尝试 cat>a
时(当文件仍然不存在时)它工作正常:创建 "a" 并让我在其中写一些东西。
但是当我再次输入时 cat>a
它告诉我 -bash: a: Function not implemented
。 (当我尝试使用 nano a
修改文件时出现类似的消息,它打开让我写入,但在尝试保存修改后,相同的消息出现在 nano
中)
可能是什么原因?我可能缺少哪个功能?或者哪个功能可能实现不正常?
除非挂载是使用 atomic_o_trunc
选项完成的,否则您需要使用 O_TRUNC
为 open()
实现 truncate()
(就像打开文件时使用 >
而不是 >>
) 才能成功。