我正在实现一个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/