fopen
//新規作成書き込み fopen("hoge.dat","wb"); //追記書き込み fopen("hoge.dat","ab");
この2つ、"hoge.dat"が存在しなければまったく同じ挙動をすると思っていたんですが、違いました。
ゲームのバイナリデータはアラインメントをそろえないといけないので、fseekを使ってファイルポインタをずらしてデータ書き込むようにしていたんですが、ある日ファイルの後方追加する必要が出たので"ab"を使うようにしたらfseekの挙動が"wb"と違っててハマりました。
"wb"の場合はちゃんと0を埋めてくれるのですが、"ab"は移動そのものが失敗するみたいです。
まぁどちらにしてもVS8の仕様のような気もするので、fseekで0が埋まることを期待したらいかんということでしょうか。