gpt4 book ai didi

c - Fuse:将统计结构从 readdir() 传递到 getattr()

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:10 29 4
gpt4 key购买 nike

我正在尝试为 readdir() 中的每条记录填充一个统计结构,并通过 filler() 将相应的统计信息传递给 getattr。 I read somewhere当在 readdir 填充时,FUSE 仅识别 stat 结构的某些字段(切线问题:情况总是如此吗?)。显然,这些接受的字段之一是 st_ino。但是,当我在 readdir() 中为给定记录填充统计结构的 st_ino 时,我在 getattr() 中看不到该记录的相应更改。

也许值得注意的是,我试图通过上述问题解决的问题是我想将(非 POSIX)信息从 readdir 传递到每条记录的 getattr。最初,我的技巧是为每个记录名称附加一个唯一标识符,该标识符用作包含此(非 POSIX)信息的数据库的主键。该解决方案的问题是用户在发出“ls”时会看到时髦的命名方案。如果我可以将这个主键存储在 st_ino 字段中,那么我可以在用户不看到命名方案的情况下唯一地标识记录。所以我想这个问题的另一个解决方案是找到一种方法来改变 readdir 用来填充记录缓冲区的名称,以及 ls 打印到屏幕上的名称。但是,我不确定如果不修改 FUSE 源代码是否可行。

感谢任何帮助!

最佳答案

我很久以前写过一些 FUSE 文件系统,这对我来说有点模糊。但是当我查看我的旧代码时,我发现 FUSE 允许 private_data 字段。您可以根据需要管理 private_data 中的信息。这应该提供一种机制,将信息从 readdir 传输到 getattr,而不会污染文件 namespace 或为特定用途保留的任何其他数据成员。

关于c - Fuse:将统计结构从 readdir() 传递到 getattr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15373128/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com