[PHP-users 6686] Re: ファイルの読み込み

KOYAMA Tetsuji php-users@php.gr.jp
Fri, 05 Apr 2002 00:32:31 +0900


  小山です。

At Thu, 04 Apr 2002 22:23:59 +0900,
naoki kishida wrote:
> fgets($fp,$len)
> のときに、必ず$lenバイト確保されるわけでなくて、改行コードが来るまで or
> $lenバイト読みこむということなので、$lenに大きい数字を指定してもむだなメ
> モリ消費はないはずです。

  ところがどっこい。

In ext/standard/file.c

1015:	buf = emalloc(sizeof(char) * (len + 1));
1016:	/* needed because recv doesnt put a null at the end*/
1017:	memset(buf, 0, len+1);

ということで len + 1 バイト確保されちゃってるようです。

  本当にメモリ消費量を押さえたいなら、fread() で細かく自分で読み込むの
がよろしいかと。

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org