UnityのC#側でダウンロードしてきたデータをネイティブに保存するライブラリを作っています。

ファイルのオープン・クローズのタイムラグを減らしたいので、
iOS・Androidアプリ起動時はファイルをオープンしたまま閉じないようにしています。

ダウンロードファイルの実体はあるファイルに追加書き込みとなるため、

fopen(実体用ファイルパス,"a+b");

実体ファイルをハッシュ・位置・サイズを用いて管理するファイルは
Map形式なので全体書き込みとなるため、

fopen(実体管理用ファイルパス,"w");

としています。

上記、実体用ファイルはfwriteのたびにファイルの中身が更新されるのですが、
実体管理用ファイルはfwriteだけでは更新されず
fcloseしないとファイルの中身が更新されません。

■質問
 ●ファイルの先頭から末端までをオープンしたまま
  書き込む場合、どのようにすれば良いでしょうか?
  (ファイルが巨大になっても良いようにできる限りfcloseを最小限にしたいです。)

 ●また、fwriteの内部の細かい仕様が記載されたページなどあれば
  教えていただけませんか?
  (どのモードの時は、ファイルにかかれるのか?メモリ上にしか持っていないのか?)