-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[19] Come si può fare il lock di un file? lock file, lock flock

La funzione integrata in Perl, flock() (vedete perlfunc per i dettagli), chiamerà flock(2) se esiste, fcntl(2) se non esiste (sulle versioni perl 5.004 e successive) e lockf(3) se non esiste nessuna delle due precedenti chiamate di sistema. Su alcuni sistemi, potrebbe anche usare una differente forma di locking nativo. Ecco alcune cose da sapere sul flock() del Perl:

  1. Produce un errore fatale se non esiste alcuna delle tre chiamate di sistema (o loro strette equivalenti).

  2. lockf(3) non prevede il locking condiviso e richiede che il filehandle sia aperto per la scrittura (o per l'append, o per la lettura/scrittura).

  3. Alcune versioni di flock() non possono fare il lock di file in rete (ad esempio su file system NFS) dunque si dovrebbe forzare l'uso di fcntl(2) quando si fa il build del Perl. Ma persino questo è dubbio, nel migliore dei casi. Vedete la voce flock in perlfunc e il file INSTALL nella distribuzione sorgente per le informazioni su come fare il build del Perl per farlo.

    Due sematiche di flock potenzialmente non ovvie ma tradizionali, sono il fatto che esso aspetta indefinitamente fino a che il lock non venga assegnato e che i suoi lock siano soltanto consultivi. Tali lock discrezionali sono più flessibili, ma offrono poche garanzie. Questo significa che i file su cui è stato fatto un lock con flock() possono essere modificati anche da programmi che non usano flock(). Le automobili che si fermano con il semaforo rosso vanno d'accordo tra loro ma non con le automobili che non si fermano con il semaforo rosso. Per i dettagli vedete perlport, la specifica documentazione del vostro port oppure le vostre manpage locali, specifiche per il sistema. È meglio che si assuma un comportamento tradizionale se si stanno scrivendo programmi portabili (Se non lo si sta facendo, ci si dovrebbe sentire, come sempre, perfettamente liberi di scriversi le proprie idiosincrasie di sistema (a volte chiamate caratteristiche"). L'aderenza alle faccende di portabilità senza originalità non dovrebbe influenzare la maniera con cui portate a termine il vostro lavoro).

    Per maggiori informazioni sul lock dei file vedete anche perlopentut/"File Locking" se ce l'avete (nuovo per il 5.6).

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google