>>197
・なんで素直にfgets()を使わないのか。

・MAX_LINEを越える行長だった場合はバッファオーバーフローを引き起こすぞ。
こんな用途でいちいちグローバル変数を用いるのもよろしくない。

・fgetc()の戻り値をチェックせずにbufに突っ込むのはよろしくない。
 EOFが返された時、多分0xffのような値がbuf末尾に入る。

・このままだとファイル末尾に改行が無いようなケースでは、その行は
 破棄されることになる。

どうしてもそういうデザインでやりたいのなら、せめて以下のように
書いたほうが良い。

int getline(FILE *fp)
{
  int i, c;
  for (i = 0; i < MAX_LINE-1 && (c = fgetc(fp)) != EOF && c != '\n'; ++i)
    buff[i] = c;
  buff[i] = '\0';
  return i;
}