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

BAC php-users@php.gr.jp
Fri, 05 Apr 2002 00:51:25 +0900


 BACです。

On Thu, 04 Apr 2002 22:23:59 +0900
naoki kishida <kishida@fk.urban.ne.jp> wrote:

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

functions/file.c より抜粋(php-3.0.18ですが)。

    buf = emalloc(sizeof(char) * (len + 1));
    /* needed because recv doesnt put a null at the end*/
    memset(buf,0,len+1);
    if ((issock?SOCK_FGETS(buf,len,socketd):fgets(buf,len,fp)) == NULL) {
        efree(buf);
        RETVAL_FALSE;
    } else {
         ......

 内部動作について知りたければソースを読むべきです。せっかくオープンソー
スなのにソースを読まないのはもったいない話です。

#と書いていたら、すでに小山さんがPHP4のソースを示されてますね・・・。

----------
BAC (bac@dev-nul.com)