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



 


indietro

[22] Tutto ciò che voglio fare è aggiungere un po' di testo alla fine di un file. Devo comunque usare i lock? append file, append

Se vi trovate su un sistema che implementa correttamente flock() ed utilizzate il codice di esempio per aggiungere dati ad un file da "perldoc -f flock", andrà tutto bene anche se il sistema operativo su cui siete non implementa l'aggiunta ai file in maniera corretta (ponendo che un tale sistema esista.) Dunque, se vi va bene limitarvi a sistemi operativi che implementano flock() (e non si tratta poi di una grande restrizione), allora quanto detto è ciò che dovete fare.

Se sapete che utilizzerete solamente un sistema che implementa l'aggiunta ai file correttamente (ad es. non Win32), allora potete omettere seek() dal codice sopra indicato.

Se sapete che state scrivendo codice che girerà solamente su un sistema operativo e su un filesystem che implementano l'aggiunta ai file correttamente (ad esempio un filesystem locale su un moderno Unix), e tenete il file in modo block-buffered e scrivete una quantità inferiore alla grandezza di un buffer tra ogni flush [completamento delle operaziono di I/O, NdT] manuale, allora ciascun contenuto del buffer è garantito che verrà scritto alla fine del file in una volta sola, senza che l'output di qualcun altro possa interferire. Potete anche utilizzare la funzione syswrite(), che altro non è che un wrapper attorno alla chiamata di sistema write() del vostro sistema.

Teoreticamente, rimane comunque una piccola possibilità che un segnale interrompa l'operazione di write() a livello di sistema prima che essa sia completata. C'è anche la possibilità che alcune implementazioni di STDIO chiamino più di una write() a livello di sistema anche se il buffer iniziale era vuoto. Ci potrebbero essere alcuni sistemi dove questa probabilità è ridotta a zero.

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