readdir()
在 fuse 中实现功能时,我看到了一个奇怪的问题。基本上,当我ls
在 fuse 中的任何目录上执行操作时,都会收到错误消息,例如:
# ls
ls: 读取目录 .: 输入/输出错误
file1.c file2.c
但奇怪的是,readdir()
正在做它应该做的事情。从某种意义上说,在该特定目录中,我有两个名为file1.c
并且file2.c
它能够正确读取它的文件。
在调试问题时,我注意到 fusefiller
函数(fuse_fill_dir_t
作为参数传递给readdir()
)可能是导致此错误的原因。
这是因为如果我只是使用调试打印目录的printf
内容而不使用填充函数返回内容,我看不到错误。
但是一旦我开始使用填充函数返回内容,我就开始看到这个错误。
我有两个与此相关的问题:
1)有人知道为什么该filler
功能可能导致此问题吗?
2)如何查找函数代码的定义fuse_fill_dir_t
?我已经查看了大多数带有这种参数的保险丝函数,但直到现在都没有运气。
任何帮助表示赞赏!
干杯,维奈