[PHP-DEV] Question about flock() on Linux

2001-02-03 Thread Andrew Sitnikov

Hello php-general,

Script flock.php:
?
 $file_name = 'flock.txt';

 for($i=0;$i1000;$i++){
   if ($fd = fopen($file_name,'a+')){
 if (flock($fd,LOCK_EX)){
fseek($fd,0,SEEK_END);
fwrite($fd,$i.' : '.$i."\n");
flock($fd,LOCK_UN);
 }else{
   die('Can not lock file');
 }
 fclose($fd);
   }else{
 echo 'Can not open file';
   }
 }
?

Run it: ab -n 10 -c 10 http://host/flock.php

Why file have similar lines ?

432 : 431 : 431
432
433 : 433
...
84841 : 841
2 : 842

May be flock not working or I do not understand, how it should work ?
How correctly to write in a file from different threads?

P.S I use Linux-2.2.17+PHP4.0.4pl1

Best regards,
 Andrew Sitnikov 
 e-mail : [EMAIL PROTECTED]
 GSM: (+372) 56491109



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Question about flock() on Linux. Part 2

2001-02-03 Thread Andrew Sitnikov

Hello php-general,

 This also does not work:
 
 flock.php
 ?
 $file_name = '/home/sitnikov/tmp/flock.txt';
 if ($fd = fopen($file_name,'a+')){
   for($i=0;$i1000;$i++){
 if (flock($fd,LOCK_EX)){
fseek($fd,0,SEEK_END);
fwrite($fd,$i.' : '.$i."\n");
flock($fd,LOCK_UN);
usleep(5);
 }else{
   die('Can not lock file');
 }
   }
   fclose($fd);
 }else{
   echo 'Can not open file';
 }
?


Best regards,
 Andrew Sitnikov 
 e-mail : [EMAIL PROTECTED]
 GSM: (+372) 56491109



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]