首页 > 解决方案 > 保险丝创建功能无法正常运行

问题描述

使用 fuse 0.3.1 这是我的创建方法

    fn create(&mut self, req: &Request, parent: u64, name: &OsStr, mode: u32, flags: u32, reply: ReplyCreate) {
        println!("create(req={:?}, parent={}, name={}, mode={}, flags={})", req, parent, name.to_str().unwrap().to_string(), mode, flags);
        reply.created(&Timespec { sec: 1, nsec: 0 }, &FileAttr {
            ino: (self.registry.keys().len() + 2) as u64,
            size: 100,
            blocks: 0,
            atime: Timespec { sec: 0, nsec: 0 },
            mtime: Timespec { sec: 0, nsec: 0 },
            ctime: Timespec { sec: 0, nsec: 0 },
            crtime: Timespec { sec: 0, nsec: 0 },
            kind: FileType::RegularFile,
            perm: 0,
            nlink: 0,
            uid: 0,
            gid: 0,
            rdev: 0,
            flags,
        }, 0, 0, flags);
    }

不确定 reply.create 中的 generation 和 fh 参数是什么,但我将其设置为 0。然后当我使用它时touch /tmp/testfs/abc.txt ,它说,touch: setting times of '/tmp/testfs/abc.txt': Function not implemented

我还需要实现一些其他功能吗?

对于 rust 中的每个操作,还有一些很好的文档示例,目前我只是在试验这些功能,不知道某些参数的含义。

标签: rustfuse

解决方案


推荐阅读