ID:               27256
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dmitry at koteroff dot ru
-Status:           Analyzed
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Windows NT, 2000, XP, 2003
 PHP Version:      4.3.4
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.




Previous Comments:
------------------------------------------------------------------------

[2004-02-14 19:48:03] [EMAIL PROTECTED]

There is no advisory locking, only mandatory locking.

------------------------------------------------------------------------

[2004-02-14 19:34:10] dmitry at koteroff dot ru

Opa. 



But why? If I'm not very wrong, Windows has its own advisory locking
API. Why is it not used?



P.S.

I have forgot to say: this behavour is related to all versions op PHP:
php4 and php5 too.

------------------------------------------------------------------------

[2004-02-14 18:56:32] [EMAIL PROTECTED]

flock() is mandatory under winNT and it's derivatives.  

This is a documentation bug.

------------------------------------------------------------------------

[2004-02-14 18:48:05] dmitry at koteroff dot ru

Description:
------------
This code does not work on Windows:

 

<?

$f1 = fopen("/tmp/a", "a+b");

flock($f1, LOCK_SH);

$f2 = fopen("/tmp/a", "r+b");

fwrite($f2, "test");

?>

 

It creates zero-length file. On Linux everything is OK.

 

If I delete flock() or call flock($f1, LOCK_UN) just after first
flock(), all works correctly.



Flock() is ADVISORY lock, but it works as mandatory lock. Bad luck.

Reproduce code:
---------------
$f1 = fopen("/tmp/a", "a+b");

flock($f1, LOCK_SH);

$f2 = fopen("/tmp/a", "r+b");

fwrite($f2, "test");



Expected result:
----------------
Create non-empty file.

Actual result:
--------------
Creates empty file.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=27256&edit=1

Reply via email to