[PHP-users 23597] Re: バージョンアップ後にunlinkでエラー

Keisuke Yasui yasuik @ soj.sega.co.jp
2004年 11月 12日 (金) 10:57:04 JST


Kumaさんの<001501c4c63c$5cc5f0b0$7a09a8c0 @ dellkm>から
> サンプルソース
> <?php
> Header("Content-type: application/vnd.fdf");
> $fp = fopen("D:/Apache Group/Apache/hoge.fdf","rb");
> fflush($fp);
> fpassthru($fp);
fflush($fp)が不要なのでは?
これはOS内部のバッファをファイルに書き出すものなので
リードオープンしているファイルに対してこれを行うのは不正です。
$fp = fopen("D:/Apache Group/Apache/hoge.fdf","rb");
fpassthru($fp);
fclose($fp);
プログラミング作法としてはこうするのが常識でしょう。
オープンしたままのファイルに対して削除(unlink)するなんて
ルール違反ですしOS、バージョン、タイミングによって
挙動が変化するのは当然です。
(単体実行でうまくいくのはfcloseがスクリプト終了時点で暗黙的に
行われているからに過ぎません)

潜在的なバグがバージョンアップ等で顕在化するのはよくあることです:-)


PHP-users メーリングリストの案内