>>141
 fprintf(wfp, buf);
は
 fprintf(wfp, "%s", buf);
か
 fputs(buf, wfp);
にするべし。
% を含む文字列があった場合に変になる。
多分、それで変なメモリ領域を読み出そうとして
そういうエラーになったんだと思う。
つまり、"read" はファイルの読み出しじゃなくて、
メモリアクセスの方のなのでは。