Cytat(115750 @ 2005-06-18 12:55:59)
Po za tym jak to jest z tym dodawaniem wartości 4 do trybu blokowania? W opisie jest, że wtedy, jeśli na plik założona jest blokada, to inny skrypt nie będzie oczekiwał na jej zdjęcie. Mam rozumieć przez to, że przerwie swoje działanie, czy ominie funkjce dostępu do pliku, czy coś innego jeszcze zrobi? Czy ta wartość jest tylko dodawana celem sprawdzenia, czy na pliku jest już blokada?
Sprawa jest taka. Jesli wywolujesz funkcje flock podajac jest ktorys z parametrow LOCK_SH lub LOCK_EX to funkcja w przypadku jesli nie moze uzyskac odpowiednich praw do pliku bedzie czekac az je dostanie [czyli zostanie blokada sciagnieta z pliku przez jakis inny program/skrypt]. Jest to tzn wywolanie blokujace bo program moze przez to na dluzsza chwile 'zawiesic' sie. Jesli do parametru LOCK_SH lub LOCK_EX dodasz wartosc zmiennej LOCK_NB to funkcja albo uzyska blokade i zwroci TRUE albo takiej blokady nie uzyska i od razu zwroci wartosc FALSE. W ten sposob skrypt nie bedzie czekal na oddanie blokady.
Podsumowujac:
I sposob: blokade dostaniesz, ale nie wiesz ile bedziesz czekac
II sposob: wiesz ze nie bedziesz czekac, ale nie wiesz czy blokade dostaniesz.
Jesli chodzi o ten 3 parametr to rzeczywiscie niewiele o tym pisze w manualu.
Cytat
The optional third argument is set to TRUE if the lock would block (EWOULDBLOCK errno condition).
Moze o to chodzi ze jesli uzywasz wersji nieblokujacej i funkcja zwroci wartosc FALSE to nie wiesz czy zawiodla bo cos sie zchranilo czy dlatego ze wywolalo by to blokade? I odpowiedz dostaniesz w 3 parametrze? Szczerze mowiac nie wiem.