[vox-tech] PHP fopen() bug

Mitch Patenaude patenaude at gmail.com
Sun Mar 20 18:24:03 PST 2005


On Sun, 20 Mar 2005 07:28:04 -0800, Rod Roark <rod at sunsetsystems.com> wrote:
[...]
>   $fh = fopen('/tmp/test', 'w');
> 
> always fails with a "no such file or directory" error.  It
> doesn't seem to matter what the path is.
> 
> What DOES work is:
> 
>   touch('/tmp/test');
>   $fh = fopen('/tmp/test', 'w');

Hmm... probably is a bug in PHP.  My guess: Instead of just passing
parameters on to the equivalent C library function of the same name,
they implemented it using the low level system call open(2), and they
forgot to || in the O_CREAT flag.

If you really want to track this down: it's easy enough to check using
strace, though harder while it's in the apache module.  Can you get it
exhibit this behavior calling the php command line interpreter?

  -- Mitch


More information about the vox-tech mailing list