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

 ID:               51969
 Updated by:       f...@php.net
 Reported by:      scarduzio at gmail dot com
 Summary:          fwrite returns 1 when trying to write to a locked file
-Status:           Open
+Status:           Feedback
 Type:             Bug
 Package:          Filesystem function related
 Operating System: Windows 7 x86
 PHP Version:      5.3.2

 New Comment:

>From the manual:

"It is also possible to add LOCK_NB as a bitmask to one of the above
operations if you don't want flock() to block while locking. (not
supported on Windows)"



Then again path "/cache/lockable.txt" doesn't look like windows - so
what OS are you using?



And while I know that's possibly not directly related to your problem -
please clarify.


Previous Comments:
------------------------------------------------------------------------
[2010-06-01 23:45:32] scarduzio at gmail dot com

Description:
------------
When I try to write any length string with fwrite using a file handle I
previously 

locked with flock, fwrite is of course unable to write, but will return


unexplicable value 1 instead of false.

Test script:
---------------
/*

   Run two instances of this script in a rapid sequence

*/



$fp1 = fopen("/cache/lockable.txt","w");

if(flock($fp1, LOCK_EX | LOCK_NB)){

    echo "locked fp1\n";

    sleep(20);

}else{

        $res = fwrite($fp1, "ABCDE");

        if(false === $res){

           echo "failed the write\n";   

        }

        echo "I managed! fwrite returned: "; print_r($res);

}

Expected result:
----------------
I expect to read "failed to write" when a second instance of the script
is run, 

since fwrite should return false as documentation says when fwrite is
not able to 

write.

Actual result:
--------------
fwrite returns integer 1.


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



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

Reply via email to