PHP'de sürtük mecanizmi çalışıyorum ve LOCK_SH modunun işlevselliğini anlamakta zorlanıyorum. Bir siteyi okuduğumda, diğer komut dosyalarının YAZILIMI yapamayacağı şekilde dosyayı kilitler, ancak OKUYUNUZ. Aşağıdaki kod beklendiği gibi çalışmaya görünmüyordu Ancak:LOCK_SH nasıl çalışır?
$fp = fopen('my_file.txt','r');
flock($fp, LOCK_SH);
sleep(20);
flock($fp, LOCK_UN);
Ve file2.php I
$fp = fopen('my_file.txt','a');
fwrite($fp,'test');
Ben dosyayı kilitler ilk komut dosyasını çalıştırın vardır: file1.php ben var 20 saniye boyunca. yerinde kilit ile, ben 'my_file.txt' (hala koşuyoruz oldu 'file1.php' Hintçe) kendisine eklenmiş oldu dize 'test' açıldığında, anında ve bundan sonra yürütme olduğunu bitirir file2.php çalıştırın. 'File2.php' yi kilitli dosyadan okuyabildiğim şekilde değiştirmeye çalışıyorum ve sorun olmadan kırmızıdan. Yani görünüşte ... 'LOCK_SH' hiç bir şey yapmayacak şekilde dikiş yapar. Ancak, LOCK_EX evet kullanırsam, dosyayı kilitler, komut dosyası yazamaz veya dosyadan okuyamaz. Ben Kolay PHP kullanarak ve pencereler 7.
şimdi anlıyorum. Açıkladığınız mekanizmayı test ettim ve problemsiz çalıştı. Sen en iyisisin. –