在 FUSE 的 truncate() 中获取 fuse_file_info

Acquire fuse_file_info in FUSE's truncate()

是否可以在函数truncate()中获取struct fuse_file_info* fi?为什么它一开始就不存在?

int truncate(const char* path, off_t size)

我将文件描述符存储在 fuse_file_info 结构的文件处理程序 fh 中。似乎事先调用了函数 open(),以便为文件创建结构。 fh 的描述是:“文件句柄。可能由文件系统在 open() 中填写。可用于所有其他文件操作”。

(作为最后的手段,我正在考虑使用一个结构来存储此信息,保存到哈希映射中,然后使用文件处理程序来存储密钥。这将允许我搜索结构,使用path,以便找到相应的文件描述符。)

注意:我实际上使用的是 jnr-fuse,但因为它模仿了 libfuse,所以我并没有特别要求它;对一个人有用的东西应该(某种程度上)对另一个人有用。

Why is it not there in the first place?

因为在 Linux 内核中实现了 truncate。可以看到签名here.