fuse入门

Posted longbigfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fuse入门相关的知识,希望对你有一定的参考价值。

参考1 http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/html/running.html

参考2 http://www.maastaar.net/fuse/linux/filesystem/c/2016/05/21/writing-a-simple-filesystem-using-fuse/

 

根据参考一,可以成功编译并挂载文件系统,对应的操作log会有反应。

根据参考2,可以编译成功,但是挂载时出现卡死现象,如果多提供一个参数,则出现 use: invalid argument `y‘ (y为第二个文件夹)

 

将参考2的源代码复制到参考一的bbfs.c,可以编译成功,但是挂载时同一。

 

初步盘点参考2的问题并非编译问题,而是代码的问题。

 

将参考一的main函数中 的 fuse_main(argc, argv, &bb_oper, bb_data); 中的bb_data换为NULL,则挂载时无法通过df -hl看到,但是其他都正常,fusermount -u也可正常卸载。

------其实是可以看到的,只是在第一行,不显眼: 

df: /home/mei/fuse-tutorial-2016-03-25/x: Transport endpoint is not connected

 

 

后来又发现参考2正常了,没有卡死,只是df 看不到挂载点,但是可以正常卸载。其实本身fuse_main函数只需要一个文件夹参数。

卡死现象只会发生在加了 -f 参数。 此参数可以让printf函数打印。

其实并不是卡死,是守护进程,参考 http://stackoverflow.com/questions/30380849/why-does-fuse-seem-to-be-locking-up-all-threads

在另开一个窗口,操作挂载的文件夹,可以看到对应输出

 

以上是关于fuse入门的主要内容,如果未能解决你的问题,请参考以下文章

GFS 分布式文件系统从入门到实践

图像分类用通俗易懂代码的复现EfficientNetV2,入门的绝佳选择(pytorch)

FUSE文件系统介绍

FUSE文件系统介绍

操作记录:在ubuntu16.04.1配置fuse开发环境及fuse开发规范测试

利用FUSE编写自定义的文件系统