zoukankan      html  css  js  c++  java
  • 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

    注:使用mount可以看到所有mount列表,即使是df -hl看不到的。

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

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

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

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

    fuse-2.9.2源码下载地址,https://launchpad.net/ubuntu/+source/fuse/2.9.2-4ubuntu4.15.04.1

    这个可以用标准的 configure make进行编译,目前git上的fuse3使用meson和ninja编译,不是很顺。

    apt-get --purge remove fuse 后,对ssfs进行make可以成功。

    remove libfuse-dev后,就不成了,error: fuse.h: No such file or directory。

    最后又移除了libfuse2:amd64。

    然后对fuse-2.9.2进行make install后又可以对ssfs make成功了!

  • 相关阅读:
    little_by_little_2 为一个数据集创建一个dataset类。(基于pytorch)
    knn_in_python
    test
    numpy一些基础知识
    PIL模块
    环境小硕的转化之路-28-面向对象编程方法的适应性训练
    环境小硕的转行之路-27-面向对象的成员
    环境小硕的转行之路-26-初识面向对象
    3DES小工具
    环球好货,小黑鱼就是一个骗局
  • 原文地址:https://www.cnblogs.com/bettersky/p/6212092.html
Copyright © 2011-2022 走看看