[PHP-users 8936] Re: FATAL: emalloc(): Unable to allocate となります

Masaki Fujimoto php-users@php.gr.jp
Thu, 25 Jul 2002 15:41:49 +0900


ふじもとです。

> while(list(,$name)=each($file_name_arr)){
>     $tmp = @file($name);
>     for($c = 0; $c < count($tmp); $c++) $all[] = $tmp[$c];
> }
> 
> count($tmp)がだいたい1000を超えるとエラーが出ます。

ちょっと時間が空いたので試してみましたが、再現できませんでした... なんら
かのバグという可能性も捨てきれなくはないので、よろしければ以下の点を確認
していただけますでしょうか?

- ファイルの個数、サイズが分からないのでなんとも言えませんが、まず実際に
  メモリが足りなくなっていないかどうかを確認してみてください:) (emalloc():
  Unable to allocate...は文字通りメモリの確保に失敗している、という意味
  です)。
  また当該ユーザにlimitがかかっている場合はunlimitedにしてみてください
  (おそらくデフォルトでunlimitedかとは思いますが)。

- 他のPHPのバージョンで試してみて頂けますでしょうか?また、スナップショッ
  ト(http://snaps.php.net/php4-STABLE-latest.tar.gz)ではいかがでしょうか。

- あまり関係有りませんが、上記のような処理ではarray_merge()を使うのが普
  通かな、と思います(わざとでしたらすみません)。

--
藤本 真樹

アストラザスタジオ
fujimoto@studio.co.jp
fujimoto@php.net