我正在实现一个FUSE文件系统,作为第一步,我只实现了getattr函数。代码如下所示:

int test_getattr(const char *path, struct stat *statbuf){
    return lstat(path, statbuf);
}

当我给出安装保险丝的目录以外的任何目录时,代码都可以正常工作。例如,上面的代码适用于/home/home/ubuntu/mnt/,但当path是lstat时挂起/home/ubuntu/mnt/fuse/,其中/home/ubuntu/mnt/fuse/是传递给fuse\u main的路径。代码只挂在lstat处。

最佳答案

您的getattr实现被困在无限循环上,因为带有FUSE路径的lstat一次又一次调用test_getattr
如果您的实现是另一个文件系统的包装器,那么您需要lstat另一个文件系统的实际路径。

关于c - FUSE getattr函数卡在lstat上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29292981/

10-12 17:07