#21087 [Ctl]: flock($fp, LOCK_SH) causes fwrite() to fail
| From: | wez@php.net | Date: | Sun, 22 Dec 2002 14:05:43 +0000 |
| Subject: | #21087 [Ctl]: flock($fp, LOCK_SH) causes fwrite() to fail | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-28186@lists.php.net to get a copy of this message | ||
ID: 21087
Updated by: wez@php.net
-Summary: Rewriting file no longer works
Reported By: gfraley5@earthlink.net
Status: Critical
Bug Type: Filesystem function related
Operating System: XP
PHP Version: 4.3.0RC3
New Comment:
Update summary.
LOCK_EX works fine.
Additionally, writing to the file prior to obtaining the lock also
works fine, but defeats the purpose of the lock.
Previous Comments:
------------------------------------------------------------------------
[2002-12-21 18:41:37] gfraley5@earthlink.net
Just a further note. It also/still errors on RC4. Also, if you use
flock($fp,2) instead of flock($fp,1) it works.
------------------------------------------------------------------------
[2002-12-19 22:27:29] iliaa@php.net
Small note, the 2nd flock (flock($fp,3);) is entirely optional. The
problem is occures if prior to write the LOCK_SH is set on the file,
the problem does not happen if LOCK_EX is used.
------------------------------------------------------------------------
[2002-12-19 21:21:56] gfraley5@earthlink.net
It appears to be the flock() call. This fails. However, if you
comment out the flock() calls it works.
$filename = "c:/phptest.txt";
$data = "This is test text";
$fp = fopen("$filename",'w');
flock($fp,1);
$len = fwrite($fp,$data);
flock($fp,3);
fclose($fp);
echo "Wrote $len bytes";
------------------------------------------------------------------------
[2002-12-19 11:27:09] wez@php.net
Keep this at feedback.
(and note that I am not mira-junk@cekit.cz and that my previous comment
on this was my first).
------------------------------------------------------------------------
[2002-12-19 11:17:24] gfraley5@earthlink.net
Sorry for the misunderstanding. First of all I did not know that you
were a developer working the problem. Nothing in your comment told me
that. Secondly, I have already stated that I will try to produce a
smaller script (see my original post). I just haven't had time to work
the problem. As to the buffering, without it, the full text is not
written out. It gets truncated.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/21087
--
Edit this bug report at http://bugs.php.net/?id=21087&edit=1