Goldenweb.it homepage

ANNUNCI | DIRECTORY | FONTS | ICONE | NEWSGROUPS | TOP25 | WALLPAPERS

English version  

Easy FullTraffic | acquistare traffico web | Aumentare il traffico
Pubblicizza il tuo sito web con noi. Incrementa i guadagni del tuo sito web - Visite e Clienti Subito. Siamo il leader nel veicolare traffico web. Con un qualsiasi programma di statistiche per il vostro sito potrete verificare la provenienza.
Hotel Torino
Prenota il tuo alloggio in centro Torino

GoldenWeb.it Directory "Premium" Links - Il tuo link qui...



flock

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

flock -- Sistema di bloccaggio file

Descrizione

bool flock ( resource handle, int operation [, int &wouldblock])

Il PHP supporta un tecnologia portabile per bloccare file completi in modalità advisory (tutti i programmi che vi accedono, devono usare lo stesso tipo di bloccaggio o non funzionerà).

flock() opera su handle che deve essere un puntatore ad un file aperto. operation può assumere uno dei valori seguenti:

  • Per acquisire una chiave condivisa (in lettura), imposta operation a LOCK_SH (usa 1 prima di PHP 4.0.1).

  • Per acquisire una chiave esclusiva (in scrittura), imposta operation a LOCK_EX (usa 2 prima di PHP 4.0.1).

  • Per rilasciare una chiave (condivisa o esclusiva), imposta operation a LOCK_UN (usa 3 prima PHP 4.0.1).

  • Se non vuoi che flock() blocchi mentre, imposta come LOCK_NB (4 prima di PHP 4.0.1) operation.

flock() ti permette di utilizzare un semplice modello di lettura/scrittura che in teoria può essere usato su qualsiasi piattaforma (inclusi molti sistemi Unix e anche Windows). Il terzo argomento (opzionale) può essere impostato a TRUE se la chiave puo bloccare (EWOULDBLOCK errno condition)

Restituisce TRUE in caso di successo, FALSE in caso di fallimento.

Esempio 1. Esempio di uso di flock()

<?php

$fp
= fopen("/tmp/lock.txt", "w+");

if (
flock($fp, LOCK_EX)) { // Esegue un lock esclusivo
    
fwrite($fp, "Write something here\n");
    
flock($fp, LOCK_UN); // rilascia il lock
} else {
    echo
"Non si riesce ad eseguire il lock del file !";
}

fclose($fp);

?>

Nota: Poiché flock() richiede il puntatore ad un file, può occorre utilizzare un speciale file di lock per proteggere l'accesso a eventuali file che si desidera azzerare attraverso l'apertura in modalità di scrittura (usando "w" o "w+" come argomento di fopen()).

Avvertimento

La funzione flock() non funzione con NFS e con diversi altri file system di rete. Verificare sulla documentazione del proprio sistema operativo.

Su molti sistemi operativi flock() è implementato a livello di processo. Usando un server API multithread quale ISAPI non potrai basarti su flock() per proteggere i file da altri script PHP che girino in thread paralleli della stessa istanza del server!

La funzione flock() non è supportata su file system antiquati tipo FAT e i suoi derivati e pertanto in tali ambienti restituirà sempre FALSE (questo è vero soprattutto per gli utenti di Windows 98).