>>833このコードだと

>while(fgetc(fp) != '\n')
>linesize++;

は最初の行のサイズだけをカウントして、おしまいだよ。
2、3行目は無視してる。