當寫入文件時,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