flock

PHP -> Funkcie -> Súborové funkcie PHP -> funkcia flock

Syntax

bool flock ( resource deskriptor, int operácia [, int &mód_wouldblock] )

Popis

Príkaz jazyka PHP
flock -- Uzamkýna súbory metódou "portable advisory locking"

PHP podporuje "portable" spôsob uzamykania celých súborov spôsobom nazývaným "advisory", čo znamená, že všetky programy, ktoré pristupujú k súboru musia používať rovnaký spôsob uzamykania (v opačnom prípade uzamykanie nebude fungovať).

flock() pracuje s deskriptorom súboru; ten musí byť platný a odkazovať na úspešne otvorený súbor. Parameter operácia môže nadobúdať jednu z nasledovných hodnôt:

Funkcia flock() dovoľuje realizovať jednoduchý model "čitateľ/zapisovateľ" (reader-writer) a to na takmer ľubovoľnej platforme (vrátane väčšiny systémov odvodených z Unix-u a dokonca na systémoch Windows). Tretí nepovinný parameter je nastavený na TRUE, ak uzamknutie by malo blokovať (chybová podmienka errno EWOULDBLOCK).

Vracia TRUE pri úspechu alebe FALSE pri chybe.

Poznámka: Pretože flock vyžaduje deskriptor súboru, na ochranu pred prístupom k súboru, ktorý mienite skrátiť otvorením v móde na zápis (použitím "w" resp. "w+" ako módu otvorenia vo funkcii fopen), by ste mali používať špeciálny uzamkýnací súbor.

Varovanie

Funkcia flock nebude pracovať na súborovom systéme NFS a ďalších sieťových súborových systémoch. Viac detailov nájdete v dokumentácii k vášmu operačnému systému.

Na niektorých operačných systémoch je flock implementovaný na úrovni procesov. Pri používaní viacvláknového aplikačného rozhrania servera (napr. ISAPI) sa nemožno týmto spôsobom spoliehať na ochranu súborov pred PHP skriptami, ktoré bežia v paralelných vláknach tej istej inštancie servera!

Funkcia flock nie je podporovaná na zastaraných súborových systémoch ako napr. FAT a ich odvodeninách. Preto funkcia v týchto prostrediach vracia vždy FALSE (napr. v prostredí Windows 98).