当写入文件时,write
函数.write
在fuse_operations
中对应于每个文件段。fuse:如何在写入之前获取要写入的文件的大小?
这意味着,对于一个较大的文件(例如12720字节)中,写功能可以与
1. size=4096, offset=0
2. size=4096, offset=4096
3. size=4096, offset=8192
4. size=432, offset=12288
称为4倍,因为它有4个片段与4096个字节最大段大小。
在write
函数里面,我想确定最后一个段的大小是write
n。我打算把所有的段放到一个缓冲区中,并使用这个最后写入的段来指示缓冲区现在包含整个对象,以便它可以放在别的地方(比如对象存储区)。通过在写入对象之前知道正在写入的对象的大小,我可以做一个简单的相等性测试file_size == size + offset
来确定最后一个段的写入时间。
您需要一个明确的文件结束指示符。在C中它是'fclose()'。在你的情况下,它可能是一个特殊的功能或者你的I/O功能的附加参数。 – 2013-03-26 20:45:28