Palmの辞書ソフト「KDIC」用に辞書ファイルのファイルサイズを減らそうとしているのですが
困ったことに。
コンバート元のフォーマットは

hoge /// piyo
hoge2 /// piyo2

のように見出し語とデータが「 /// 」で区切られている形になっています。で、
「hoge」の部分が11文字以上ならその行は削除するという方針で以下のように組んでみま
した。
が、これを走らせると出力サイズが8MBを超えたあたりで「"read"になることは
できませんでした」のエラーが出てしまいます。ちなみに変換元のテキストデータは20MB強。
fgetsなんかは、扱えるファイルサイズの上限なんかがあるんでしょうか?

int main()
{
FILE *rfp, *wfp;
char buf[4089];

wfp = fopen("d:\\convert.txt", "w");
if (rfp = fopen("D:\\eijirou\\waeiji.txt", "r")) {
while (fgets(buf, 4089, fp)) {
if ((strstr(buf, " /// ") - buf) <= 10) {
fprintf(wfp, buf);
}
}
}
fclose(rfp);
fclose(wfp);
}