私はpythonでfuse fsを開発しています(fuse-pythonバインディングを使用)。タッチが正しく機能するように実装するには、どのような方法が必要ですか? 現在、次の出力があります。
$ touch m/My\ files/d3elete1.me
touch: setting times of `m/My files/d3elete1.me': Invalid argument
ファイルが存在する「d3elete1.me」:
$ ls -l m/My\ files/d3elete1.me
-rw-rw-rw- 1 root root 0 Jul 28 15:28 m/My files/d3elete1.me
また、システムコールを追跡しようとしていました:
$ strace touch m/My\ files/d3elete1.me
...
open("m/My files/d3elete1.me", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = 3
dup2(3, 0) = 0
close(3) = 0
utimensat(0, NULL, NULL, 0) = -1 EINVAL (Invalid argument)
close(0) = 0
...
ご覧のとおり、 utimensatは失敗しました。空のutimensとutimeを実装しようとしましたが、呼び出されません。