X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileio.tex;h=ba3dc86b57fe4186e7638cc449c32ee60ebc9d47;hp=61099ae489db4119b424762ff92d6ff521bbf545;hb=f4d0257885aec8c2b3edbd12cd56d2b58a2abd1b;hpb=ee0fa1a411f3ef7cdb667a7176c0bab23c796e33 diff --git a/fileio.tex b/fileio.tex index 61099ae..ba3dc86 100644 --- a/fileio.tex +++ b/fileio.tex @@ -595,14 +595,31 @@ Si tenga presente infine che la implementazione di \const{O\_SYNC} di Linux differisce da quanto previsto dallo standard POSIX.1 che prevede, oltre a questo flag che dovrebbe indicare la sincronizzazione completa di tutti i dati e di tutti i metadati, altri due flag \const{O\_DSYNC} e \const{O\_RSYNC}. Il -primo dei due richiede la scrittura sincrona dei dati del file e dei metadati -associati +primo dei due richiede la scrittura sincrona di tutti i dati del file e dei +metadati che ne consentono l'immediata rilettura, ma non di tutti i metadati, +per evitare la perdita di prestazioni relativa alla sincronizzazione di +informazioni ausiliarie come i tempi dei file. +Il secondo, da usare in combinazione con \const{O\_SYNC} o \const{O\_DSYNC} ne +sospende l'effetto, consentento al kernel di bufferizzare le scritture, ma +soltanto finché non avviene una lettura, in quel caso i dati ed i metadati +dovranno essere sincronizzati (secondo le modalità indicate da \const{O\_SYNC} +e \const{O\_DSYNC}) e la lettura verrà bloccata fintanto che detta +sincronizzazione non sia completata. +Nel caso di Linux fino al kernel 2.6.33 la sola semantica supportata era +quella di \const{O\_DSYNC} o + + \const{O\_DSYNC} + + +e \const{O\_RSYNC} +erano sinoni + + +che una lettura si blocchi - diversi - \const{O\_FSYNC} Sinonimo di \const{O\_SYNC}, usato da BSD. \const{O\_DSYNC} Variante di I/O sincrono definita da POSIX; presente dal kernel 2.1.130 come sinonimo di