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()