我正在实现一个FUSE文件系统,并且第一步只实现了getattr
函数。代码如下所示:
int test_getattr(const char *path, struct stat *statbuf){
return lstat(path, statbuf);
}
当我提供除安装FUSE的目录之外的任何目录时,代码工作正常。例如,上述代码适用于/home
,/home/ubuntu/mnt/
,但当路径为lstat
时/home/ubuntu/mnt/fuse/
挂起,其中/home/ubuntu/mnt/fuse/
是传递给fuse_main的路径。代码只挂在lstat
。
答案 0 :(得分:1)
您的getattr
实施停留在无限循环上,因为带有FUSE路径的lstat
会一次又一次地调用test_getattr
。
如果您的实现是另一个文件系统的包装器,那么您需要lstat
其他文件系统的实际路径。