1

写入文件时,会为每个文件段调用与inwrite对应的函数。.writefuse_operations

这意味着对于较大的文件(例如 12720 字节),写入函数可以调用 4 次

1. size=4096, offset=0
2. size=4096, offset=4096
3. size=4096, offset=8192
4. size=432, offset=12288

因为它有 4 个段,最大段大小为 4096 字节。

write函数内部,我想确定最后一个段大小何时为writen。我打算将所有段放入缓冲区,并使用最后写入的段来表示缓冲区现在包含整个对象,以便可以将其放在其他地方(例如对象存储)。通过在写入之前知道正在写入的对象的大小,我可以做一个简单的相等性测试file_size == size + offset来确定最后一段被写入的时间。

4

2 回答 2

1

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

于 2013-03-26T20:11:26.757 回答
-1

如果你的块的长度小于 4096,你就知道你在文件的末尾。继续写出缓冲区的内容!

于 2013-11-24T19:15:29.540 回答