fopenのモードによるfwriteの挙動の違いについて
UnityのC#側でダウンロードしてきたデータをネイティブに保存するライブラリを作っています。
ファイルのオープン・クローズのタイムラグを減らしたいので、
iOS・Androidアプリ起動時はファイルをオープンしたまま閉じないようにしています。
ダウンロードファイルの実体はあるファイルに追加書き込みとなるため、
fopen(実体用ファイルパス,"a+b");
実体ファイルをハッシュ・位置・サイズを用いて管理するファイルは
Map形式なので全体書き込みとなるため、
fopen(実体管理用ファイルパス,"w");
としています。
上記、実体用ファイルはfwriteのたびにファイルの中身が更新されるのですが、
実体管理用ファイルはfwriteだけでは更新されず
fcloseしないとファイルの中身が更新されません。
■質問
●ファイルの先頭から末端までをオープンしたまま
書き込む場合、どのようにすれば良いでしょうか?
(ファイルが巨大になっても良いようにできる限りfcloseを最小限にしたいです。)
●また、fwriteの内部の細かい仕様が記載されたページなどあれば
教えていただけませんか?
(どのモードの時は、ファイルにかかれるのか?メモリ上にしか持っていないのか?)