Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: flock
Forum PHP.pl > Forum > Przedszkole
goped
witam. wiecie moze dlaczego ten skrypt nie wykazuje bledu kiedy w warunku flock'a jest poda tylko 6, a przy 4 wyskakuje blad, na php.net w ogole nie pisza o mode 6??
  1. <?
  2. $file1=fopen("iplog.txt", "r"); /* otwiera 2 razy ten sam plik */
  3. $file2=fopen("iplog.txt", "r");
  4.  
  5. flock($file1, 2); /* blokuje pierwszą kopie */
  6.  
  7. if(flock($file2, 6)) /* funkcja flock zwróci false, ponieważ plik */
  8. { /* jest już zablokowany */
  9. echo("Plik nie zablokowany");
  10. }else{
  11. echo("Plik zablokowany");
  12. }
  13.  
  14. flock($file1, 3); /* odblokowuje plik */
  15. ?>


oraz moze wiecie co daje odpytanie czy plik da sie zablokowac? uzywa sie to zeby powiedziec komus sprobuj za chwile, czy po co?(przyklad z odpytaniem jest w manualu pod flockiem -> flock" title="Zobacz w manualu php" target="_manual)
ActivePlayer
wyobraz sobie taki schemat:

dajmy na to w tym samym czasie uruchomiono 2 razy ten sam skrypt i teraz:

s1: otwiera plik
s2: otwiera plik
s2: dopisuje cos i zapisuje zmiany
s1: dopisuje cos i zapisuje zmieny

i w ten oto piekny sposob zmiany wprowadzone przez s2 zostały zniszczone.

a teraz:
s1: otwiera i blokuje plik
s2: otwiera ale nie moze wiec zglasza błąd bądz proboje ponownie za chwile
s1: zapisuje u unlockuje
s2: wykonuje co powinien

cala filozofia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.