我怎样才能找到生锈保险丝的路径?

时间:2016-09-21 23:32:46

标签: rust fuse

我正在尝试为Rust中的REST API编写FUSE接口。我正在使用rust-fuse库。在实现readdir特征时,我需要Filesystem回调函数中的dir路径,但该函数只接受inode!

如何找到文件的路径?它是否以某种方式嵌入Request

我可以创建一个inode <-> path地图,但这会让事情变得太复杂。 Python和Haskell FUSE库都将路径作为参数传递给回调函数而不是inode。

fn readdir(&mut self,
           req: &Request,
           ino: u64,
           _fh: u64,
           offset: u64,
           mut reply: ReplyDirectory) {
    // ...
}

1 个答案:

答案 0 :(得分:2)

图书馆似乎还没有提供:

From the README(强调我的):

  

待办事项

     

还有很多事要做。随意贡献。

     
      
  • 尚未处理中断文件系统操作。额外的   更高级别的API会很好。 它应该提供路径名   inode编号并自动处理并发和中断   (比如FUSE C库的高级API)。
  •   

当您打开/列出目录/文件时,您需要分配一个唯一的inode,跟踪inode到路径的映射,并在以后使用它。

根据您的API结构,您还可以直接将一些信息编码到inode中。例如,也许你有&lt; 32个端点,因此您可以将每个端点编码为5位数,并在以后对其进行解码。然后,只有一小部分inode需要具有任意值。