C fuse:如何在写入之前获得要写入的文件的大小?

C fuse:如何在写入之前获得要写入的文件的大小?,c,fuse,C,Fuse,写入文件时,将为每个文件段调用与.write in fuse_操作相对应的write函数 这意味着对于较大的文件(例如12720字节),可以使用 1. size=4096, offset=0 2. size=4096, offset=4096 3. size=4096, offset=8192 4. size=432, offset=12288 因为它有4个段,最大段大小为4096字节 在write函数中,我想确定何时写入最后一个段大小。我打算将所有的段放入一个缓冲区,并使用最后写入的段来表示

写入文件时,将为每个文件段调用与.write in fuse_操作相对应的write函数

这意味着对于较大的文件(例如12720字节),可以使用

1. size=4096, offset=0
2. size=4096, offset=4096
3. size=4096, offset=8192
4. size=432, offset=12288
因为它有4个段,最大段大小为4096字节


在write函数中,我想确定何时写入最后一个段大小。我打算将所有的段放入一个缓冲区,并使用最后写入的段来表示缓冲区现在包含整个对象,这样它就可以放在其他地方,比如对象存储。通过在写入之前知道要写入的对象的大小,我可以只做一个简单的相等性测试文件_size==size+offset来确定最后一段的写入时间。

显然,我不能。在文件处理程序关闭后,我只能将整个对象放在其他位置,例如对象存储。

如果块的长度小于4096,您就知道您位于文件的末尾。继续写下缓冲区的内容

您需要一个明确的文件结束指示符。在C中是fclose。在您的例子中,它可以是这样一个特殊函数,也可以是I/O函数的附加参数。很好,如果我的文件是4*4096呢?