ファイルが書き込まれると、ファイルセグメントごとにinにwrite対応する関数が呼び出されます。.writefuse_operations
これは、より大きなファイル(たとえば、12720バイト)の場合、書き込み関数を4回呼び出すことができることを意味します。
1. size=4096, offset=0
2. size=4096, offset=4096
3. size=4096, offset=8192
4. size=432, offset=12288
最大セグメントサイズが4096バイトの4つのセグメントがあるためです。
関数内で、最後のセグメントサイズがいつnwriteになるかを確認したいと思います。writeすべてのセグメントをバッファーに入れ、この最後に書き込まれたセグメントを使用して、バッファーにオブジェクト全体が含まれていることを通知し、別の場所(オブジェクトストアなど)に置くことができるようにします。書き込まれる前に書き込まれているオブジェクトのサイズを知ることにより、単純な等式テストfile_size == size + offsetを実行して、最後のセグメントがいつ書き込まれるかを判断できます。