• 自写程序调用mount


    代码:

    int fd = open("/dev/fuse", O_RDWR);
    printf("fd=%d ",fd);
    int res;
    res=mount ("bvbsdf", "/home/leveldb/fuse/ssfs/dir1", "fuse.ccc", 6, "fd=3,rootmode=40000,user_id=0,group_id=0");

    fd是关键点,之前不成功是因为没有fd。正常的mount是将fd以参数传递的,而这里调用时将fd显式的等于3,因此要确保3这个fd确实已经存在。

    之前的失败主要是缺少这个存在的fd。

    这样可以多次运行这个程序,可以在/proc/xxx/mounts下看到列表,但是不能在/etc/mtab下看到,如果需要添加到mtab,参考fuse中mount.c程序的fuse_mnt_add_mount函数,在上一篇中有介绍。

    多次运行,会在/proc/xxx/mounts有多个entry,umount一次会将最后一个卸掉。

    问题:目前自写程序模仿fuse中mount.c中的fuse_mount_sys函数。需要sudo执行才能mount成功。那么如果实现不用root账户就可以mount呢?也就是mount.c中的fuse_mount_fusermount函数。

  • 相关阅读:
    Django框架-模板层
    Django框架-路由层
    Django流程-以登录功能为例
    常见的MySQL慢查询优化
    函数之二
    python 之 函数
    python 文件操作
    set dict tuple 内置方法
    leetcode
    python 之 数据类型初接触
  • 原文地址:https://www.cnblogs.com/bettersky/p/6754436.html
Copyright © 2020-2023  润新知