Reindicizzazione sensata di socket e out-of-band.
[gapil.git] / fileunix.tex
index bfaab858ad4566a48af8e5c4240b5eb3b2a17356..953bdcb8f1a371952f318c68ee00fb4ef1eecc9e 100644 (file)
@@ -1,6 +1,6 @@
 %% fileunix.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -81,7 +81,7 @@ file, fra cui:
 \item lo stato del file (nel campo \var{f\_flags}).
 \item il valore della posizione corrente (l'\textit{offset}) nel file (nel
   campo \var{f\_pos}).
-\item un puntatore all'inode\index{inode}\footnote{nel kernel 2.4.x si è in
+\item un puntatore \index{inode} all'inode\footnote{nel kernel 2.4.x si è in
     realtà passati ad un puntatore ad una struttura \struct{dentry} che punta a
     sua volta all'inode\index{inode} passando per la nuova struttura del VFS.}
   del file.
@@ -118,10 +118,10 @@ stato chiuso nessuno in precedenza).
 
 In tutti i sistemi unix-like esiste una convenzione generale per cui ogni
 processo viene lanciato dalla shell con almeno tre file aperti. Questi, per
-quanto appena detto, avranno come \textit{file
-  descriptor}\index{file!descriptor} i valori 0, 1 e 2.  Benché questa sia
-soltanto una convenzione, essa è seguita dalla gran parte delle applicazioni,
-e non aderirvi potrebbe portare a gravi problemi di interoperabilità.
+quanto appena detto, avranno come \index{file!descriptor} \textit{file
+  descriptor} i valori 0, 1 e 2.  Benché questa sia soltanto una convenzione,
+essa è seguita dalla gran parte delle applicazioni, e non aderirvi potrebbe
+portare a gravi problemi di interoperabilità.
 
 Il primo file è sempre associato al cosiddetto \textit{standard input}; è cioè
 il file da cui il processo si aspetta di ricevere i dati in ingresso. Il
@@ -296,6 +296,7 @@ descriptor con il valore pi
                          \itindex{Denial~of~Service~(DoS)}
                          \textit{DoS}\protect\footnotemark\ quando 
                          \func{opendir} viene chiamata su una fifo o su un
+                         dispositivo associato ad una unità a nastri, non deve
                          dispositivo a nastri; non deve essere utilizzato
                          al di fuori dell'implementazione di \func{opendir}. \\
     \const{O\_LARGEFILE}&nel caso di sistemi a 32 bit che supportano file di
@@ -509,8 +510,7 @@ file. 
     successo e $-1$ in caso di errore nel qual caso \var{errno} assumerà uno
     dei valori:
   \begin{errlist}
-  \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket\index{socket} o una
-    fifo.
+  \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
     \item[\errcode{EINVAL}] \param{whence} non è un valore valido.
   \end{errlist}
   ed inoltre \errval{EBADF}.}
@@ -613,11 +613,11 @@ sez.~\ref{sec:file_noblocking}) e ritorna solo quando ne arrivano; se il numero
 di byte richiesti eccede quelli disponibili la funzione ritorna comunque, ma
 con un numero di byte inferiore a quelli richiesti.
 
-Lo stesso comportamento avviene caso di lettura dalla rete (cioè su un
-socket\index{socket}, come vedremo in sez.~\ref{sec:sock_io_behav}), o per la
-lettura da certi file di dispositivo, come le unità a nastro, che
-restituiscono sempre i dati ad un singolo blocco alla volta, o come le linee
-seriali, che restituiscono solo i dati ricevuti fino al momento della lettura.
+Lo stesso comportamento avviene caso di lettura dalla rete (cioè su un socket,
+come vedremo in sez.~\ref{sec:sock_io_behav}), o per la lettura da certi file
+di dispositivo, come le unità a nastro, che restituiscono sempre i dati ad un
+singolo blocco alla volta, o come le linee seriali, che restituiscono solo i
+dati ricevuti fino al momento della lettura.
 
 Infine anche le due condizioni segnalate dagli errori \errcode{EINTR} ed
 \errcode{EAGAIN} non sono propriamente degli errori. La prima si verifica
@@ -842,8 +842,8 @@ Se dal punto di vista della lettura dei dati questo non comporta nessun
 problema, quando si andrà a scrivere le operazioni potranno mescolarsi in
 maniera imprevedibile.  Il sistema però fornisce in alcuni casi la possibilità
 di eseguire alcune operazioni di scrittura in maniera coordinata anche senza
-utilizzare meccanismi di sincronizzazione più complessi (come il \textit{file
-  locking} \index{file!locking}, che esamineremo in
+utilizzare meccanismi di sincronizzazione più complessi (come il
+\index{file!locking} \textit{file locking}, che esamineremo in
 sez.~\ref{sec:file_locking}).
 
 Un caso tipico di necessità di accesso condiviso in scrittura è quello in cui
@@ -1056,7 +1056,7 @@ descriptor, che non riguardano la normale lettura e scrittura di dati, ma la
 gestione sia delle loro proprietà, che di tutta una serie di ulteriori
 funzionalità che il kernel può mettere a disposizione.\footnote{ad esempio si
   gestiscono con questa funzione varie modalità di I/O asincrono (vedi
-  sez.~\ref{sec:file_asyncronous_operation}) e il file locking
+  sez.~\ref{sec:file_asyncronous_operation}) e il \textit{file locking}
   \index{file!locking} (vedi sez.~\ref{sec:file_locking}).}
 
 Per queste operazioni di manipolazione e di controllo delle varie proprietà e
@@ -1335,4 +1335,4 @@ relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}.
 % LocalWords:  SETOWN GETSIG SETSIG sigaction SIGINFO siginfo SETLEASE lease is
 % LocalWords:  truncate GETLEASE NOTIFY all'I AND ACCMODE ioctl everything argp
 % LocalWords:  framebuffer request ENOTTY CDROM nell'header magic number
-% LocalWords:  FIOCLEX FIONCLEX FIOASYNC FIONBIO
+% LocalWords:  FIOCLEX FIONCLEX FIOASYNC FIONBIO NOATIME