Disponibilit�: Unix.
Questo modulo implementa alcune funzionalit� addizionali sugli oggetti file built-in. In particolare, implementa il locking (NdT: bloccaggio) dei file, il controllo sulle opzioni relative ai file ed una semplice interfaccia per duplicare gli oggetti file. Il modulo definisce un nuovo oggetto file, l'oggetto posixfile. Questi possiede tutti i metodi standard degli oggetti file ed aggiunge i metodi descritti sotto. Questo modulo funziona solamente su certi tipi di Unix, poich� utilizza fcntl.fcntl() per il locking dei file.
Per istanziare un oggetto posixfile, usate la funzione open() del modulo posixfile. L'oggetto risultante somiglia e si comporta approssimativamente allo stesso modo di un oggetto file standard.
Il modulo posixfile definisce le seguenti costanti:
Il modulo posixfile definisce le seguenti funzioni:
| filename[, mode[, bufsize]]) |
| fileobject) |
L'oggetto posixfile definisce gli ulteriori seguenti metodi:
| fmt, [len[, start[, whence]]]) |
0. start specifica
l'offset di partenza della sezione, il cui valore predefinito �
0. L'argomento whence specifica da dove � relativo
l'offset. Esso accetta una fra le costanti SEEK_SET,
SEEK_CUR o SEEK_END. Il valore predefinito �
SEEK_SET. Per maggiori informazioni su questi argomenti
fate riferimento alla pagina del manuale fcntl(2) del vostro
sistema.
| [flags]) |
| ) |
| fd) |
| ) |
Tutti i metodi sollevano un'eccezione IOError quando la richiesta fallisce.
I caratteri di formattazione per il metodo lock() possiedono i seguenti significati:
| Formato | Significato |
|---|---|
| u | Esegue l'unlock sulla regione specificata |
| r | richiede un lock in lettura per la regione specificata |
| w | richiede un lock in scrittura per la regione specificata |
I seguenti modificatori possono venire ulteriormente aggiunti al formato:
| Modificatore | Significato | Note |
|---|---|---|
| | | Attende sino a quando il lock non viene assegnato | |
| ? | Restituisce il primo lock in conflitto con il lock
richiesto, o None se non vi � alcun conflitto |
(1) |
Note:
(mode, len, start, whence, pid)
dove mode � un carattere che rappresenta il tipo di lock
('r' or 'w'). Questo modificatore impedisce che una richiesta venga
assegnata; compare solamente a scopo di interrogazione.
I caratteri di formattazione per il metodo flags() possiedono i seguenti significati:
| Formato | Significato |
|---|---|
| a | opzione di sola aggiunta |
| c | opzione di chiusura dopo l'esecuzione |
| n | opzione di annullamento del ritardo (opzione chiamata anche non bloccante) |
| s | opzione di sincronizzazione |
Inoltre il seguenti modificatori possono venire aggiunti al formato:
| Modificatore | Significato | Note |
|---|---|---|
| ! | imposta le opzioni specificate in 'off', invece della predefinita 'on' | (1) |
| = | rimpiazza le opzioni, invece dell'operazione predefinita 'OR' | (1) |
| ? | restituisce una stringa nella quale i caratteri rappresentano le opzioni impostate. | (2) |
Note:
Esempi:
import posixfile
file = posixfile.open('/tmp/test', 'w')
file.lock('w|')
...
file.lock('u')
file.close()