>>588
while()ループでfpがNULLになってからもう一回fgets()が呼び出されちゃうこ
とがあるんじゃない?feof()でチェックするようにしたらどうかな?
そもそもfgetsが返すNULLはEOFかエラーか区別できないはず。