Aggiornamento al 2010 delle note di copyright
[gapil.git] / session.tex
index 5427840c4de3c3711d8686198fb54cdc7a250486..92564cd2e1e11b28c0d8730105bad63513b48729 100644 (file)
@@ -1,6 +1,6 @@
 %% session.tex
 %%
-%% Copyright (C) 2000-2007 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2010 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",
@@ -71,7 +71,7 @@ Si noti come si sia parlato di comandi e non di programmi o processi; fra le
 funzionalità della shell infatti c'è anche quella di consentire di concatenare
 più programmi in una sola riga di comando con le pipe, ed in tal caso verranno
 eseguiti più programmi, inoltre, anche quando si invoca un singolo programma,
-questo potrà sempre lanciare sottoprocessi per eseguire dei compiti specifici.
+questo potrà sempre lanciare sotto-processi per eseguire dei compiti specifici.
 
 Per questo l'esecuzione di un comando può originare più di un processo; quindi
 nella gestione del job control non si può far riferimento ai singoli processi.
@@ -167,8 +167,8 @@ funzione \funcd{getsid}, che per
   caso di successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà
   i valori:
     \begin{errlist}
-    \item[\errcode{ESRCH}] Il processo selezionato non esiste.
-    \item[\errcode{EPERM}] In alcune implementazioni viene restituito quando il
+    \item[\errcode{ESRCH}] il processo selezionato non esiste.
+    \item[\errcode{EPERM}] in alcune implementazioni viene restituito quando il
       processo selezionato non fa parte della stessa sessione del processo
       corrente.
     \end{errlist}
@@ -211,10 +211,10 @@ ad un altro con la funzione \funcd{setpgid}, il cui prototipo 
   \bodydesc{La funzione ritorna il valore del nuovo \textit{process group}, e
   -1 in caso di errore, nel qual caso \var{errno} assumerà i valori:
     \begin{errlist}
-    \item[\errcode{ESRCH}] Il processo selezionato non esiste.
-    \item[\errcode{EPERM}] Il cambiamento non è consentito.
-    \item[\errcode{EACCES}] Il processo ha già eseguito una \func{exec}.
-    \item[\errcode{EINVAL}] Il valore di \param{pgid} è negativo.
+    \item[\errcode{ESRCH}] il processo selezionato non esiste.
+    \item[\errcode{EPERM}] il cambiamento non è consentito.
+    \item[\errcode{EACCES}] il processo ha già eseguito una \func{exec}.
+    \item[\errcode{EINVAL}] il valore di \param{pgid} è negativo.
     \end{errlist}
  }
 \end{prototype}
@@ -298,7 +298,7 @@ dal quale ricevono gli eventuali segnali da tastiera.
 A tale scopo lo standard POSIX.1 prevede che ad ogni sessione possa essere
 associato un terminale di controllo; in Linux questo viene realizzato
 mantenendo fra gli attributi di ciascun processo anche qual'è il suo terminale
-di controllo.\footnote{Lo standard POSIX.1 non specifica nulla riguardo
+di controllo.\footnote{lo standard POSIX.1 non specifica nulla riguardo
   l'implementazione; in Linux anch'esso viene mantenuto nella solita struttura
   \struct{task\_struct}, nel campo \var{tty}.}  In generale ogni processo
 eredita dal padre, insieme al \acr{pgid} e al \acr{sid} anche il terminale di
@@ -338,10 +338,10 @@ funzione \funcd{tcsetpgrp}, il cui prototipo 
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
     errore, nel qual caso \var{errno} assumerà i valori:
     \begin{errlist}
-    \item[\errcode{ENOTTY}] Il file \param{fd} non corrisponde al terminale di
+    \item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di
       controllo del processo chiamante.
-    \item[\errcode{ENOSYS}] Il sistema non supporta il job control.
-    \item[\errcode{EPERM}] Il \textit{process group} specificato non è nella
+    \item[\errcode{ENOSYS}] il sistema non supporta il job control.
+    \item[\errcode{EPERM}] il \textit{process group} specificato non è nella
     stessa sessione del processo chiamante.
     \end{errlist}
     ed inoltre \errval{EBADF} ed \errval{EINVAL}. 
@@ -376,7 +376,7 @@ ad un terminale con la funzione \funcd{tcgetpgrp}, il cui prototipo 
     gruppo di \textit{foreground}, e -1 in caso di errore, nel qual caso
     \var{errno} assumerà i valori:
     \begin{errlist}
-    \item[\errcode{ENOTTY}] Non c'è un terminale di controllo o \param{fd} non
+    \item[\errcode{ENOTTY}] non c'è un terminale di controllo o \param{fd} non
       corrisponde al terminale di controllo del processo chiamante.
     \end{errlist}
     ed inoltre \errval{EBADF} ed \errval{ENOSYS}. 
@@ -497,7 +497,7 @@ Nella maggior parte delle distribuzioni di GNU/Linux\footnote{fa eccezione la
   distribuzione \textit{Slackware}, come alcune distribuzioni su dischetto, ed
   altre distribuzioni dedicate a compiti limitati e specifici.}  viene usata
 la procedura di avvio di System V; questa prevede che \cmd{init} legga dal
-file di configurazione \file{/etc/inittab} quali programmi devono essere
+file di configurazione \conffile{/etc/inittab} quali programmi devono essere
 lanciati, ed in quali modalità, a seconda del cosiddetto \textit{run level},
 anch'esso definito nello stesso file.
 
@@ -527,7 +527,7 @@ perci
 tutto ripetuto per ciascuno dei terminali che si hanno a disposizione (o per
 un certo numero di essi, nel caso delle console virtuali), secondo quanto
 indicato dall'amministratore nel file di configurazione del programma,
-\file{/etc/inittab}.
+\conffile{/etc/inittab}.
 
 Quando viene lanciato da \cmd{init} il programma parte con i privilegi di
 amministratore e con un ambiente vuoto; \cmd{getty} si cura di chiamare
@@ -601,9 +601,10 @@ niente a che fare con la gestione diretta dei comandi dell'utente.
 Questi programmi, che devono essere eseguiti in modalità non interattiva e
 senza nessun intervento dell'utente, sono normalmente chiamati
 \textsl{demoni}, (o \textit{daemons}), nome ispirato dagli omonimi spiritelli
-che svolgevano compiti vari, di cui parlava Socrate (che sosteneva di averne
-uno al suo servizio).\footnote{NdT. ricontrollare, i miei ricordi di filosofia
-  sono piuttosto datati.}
+della mitologia greca che svolgevano compiti che gli dei trovavano noiosi, di
+cui parla anche Socrate (che sosteneva di averne uno al suo servizio).
+
+%TODO ricontrollare, i miei ricordi di filosofia sono piuttosto datati.
 
 Se però si lancia un programma demone dalla riga di comando in un sistema che
 supporta, come Linux, il \textit{job control} esso verrà comunque associato ad
@@ -644,9 +645,9 @@ occorrer
   il programma), per evitare che la directory da cui si è lanciato il processo
   resti in uso e non sia possibile rimuoverla o smontare il filesystem che la
   contiene.
-\item Impostare la maschera dei permessi (di solito con \code{umask(0)}) in
-  modo da non essere dipendenti dal valore ereditato da chi ha lanciato
-  originariamente il processo. 
+\item Impostare la \itindex{umask} maschera dei permessi (di solito con
+  \code{umask(0)}) in modo da non essere dipendenti dal valore ereditato da
+  chi ha lanciato originariamente il processo.
 \item Chiudere tutti i file aperti che non servono più (in generale tutti); in
   particolare vanno chiusi i file standard che di norma sono ancora associati
   al terminale (un'altra opzione è quella di redirigerli verso
@@ -720,7 +721,7 @@ meccanismi come:
 \item scartare.
 \end{itemize*}
 secondo le modalità che questo preferisce e che possono essere impostate
-attraverso il file di configurazione \file{/etc/syslog.conf} (maggiori
+attraverso il file di configurazione \conffile{/etc/syslog.conf} (maggiori
 dettagli si possono trovare sulle pagine di manuale per questo file e per
 \cmd{syslogd}).
 
@@ -767,23 +768,23 @@ specificato con un OR aritmetico.
     \hline
     \hline
     \const{LOG\_AUTH}     & Messaggi relativi ad autenticazione e sicurezza,
-                            obsoleto, è sostituito da \const{LOG\_AUTHPRIV}. \\
+                            obsoleto, è sostituito da \const{LOG\_AUTHPRIV}.\\
     \const{LOG\_AUTHPRIV} & Sostituisce \const{LOG\_AUTH}.\\
     \const{LOG\_CRON}     & Messaggi dei demoni di gestione dei comandi
                             programmati (\cmd{cron} e \cmd{at}).\\
     \const{LOG\_DAEMON}   & Demoni di sistema.\\
     \const{LOG\_FTP}      & Server FTP.\\
-    \const{LOG\_KERN}     & Messaggi del kernel\\
-    \const{LOG\_LOCAL0}   & Riservato all'amministratore per uso locale\\
+    \const{LOG\_KERN}     & Messaggi del kernel.\\
+    \const{LOG\_LOCAL0}   & Riservato all'amministratore per uso locale.\\
     --- & \\
-    \const{LOG\_LOCAL7}   & Riservato all'amministratore per uso locale\\
-    \const{LOG\_LPR}      & Messaggi del sistema di gestione delle stampanti \\
-    \const{LOG\_MAIL}     & Messaggi del sistema di posta elettronica\\
+    \const{LOG\_LOCAL7}   & Riservato all'amministratore per uso locale.\\
+    \const{LOG\_LPR}      & Messaggi del sistema di gestione delle stampanti.\\
+    \const{LOG\_MAIL}     & Messaggi del sistema di posta elettronica.\\
     \const{LOG\_NEWS}     & Messaggi del sistema di gestione delle news 
-                            (USENET) \\
-    \const{LOG\_SYSLOG}   & Messaggi generati dallo stesso \cmd{syslogd}\\
-    \const{LOG\_USER}     & Messaggi generici a livello utente\\
-    \const{LOG\_UUCP}     & Messaggi del sistema UUCP\\
+                            (USENET).\\
+    \const{LOG\_SYSLOG}   & Messaggi generati dallo stesso \cmd{syslogd}.\\
+    \const{LOG\_USER}     & Messaggi generici a livello utente.\\
+    \const{LOG\_UUCP}     & Messaggi del sistema UUCP.\\
 \hline
 \end{tabular}
 \caption{Valori possibili per l'argomento \param{facility} di \func{openlog}.}
@@ -808,10 +809,10 @@ tab.~\ref{tab:sess_openlog_option}.
 \const{LOG\_NDELAY} & Sostituisce \const{LOG\_AUTH}.\\
 \const{LOG\_NOWAIT} & Messaggi dei demoni di gestione dei comandi
                       programmati (\cmd{cron} e \cmd{at}).\\
-\const{LOG\_ODELAY} & .\\
+\const{LOG\_ODELAY} & \\
 \const{LOG\_PERROR} & Stampa anche su \file{stderr}.\\
 \const{LOG\_PID}    & Inserisce nei messaggi il \acr{pid} del processo
-                      chiamante. \\
+                      chiamante.\\
 \hline
 \end{tabular}
 \caption{Valori possibili per l'argomento \param{option} di \func{openlog}.}
@@ -860,14 +861,14 @@ con la maschera binaria delle costanti di tab.~\ref{tab:sess_syslog_facility}.
     \textbf{Valore}& \textbf{Significato}\\
     \hline
     \hline
-    \const{LOG\_EMERG}   & Il sistema è inutilizzabile. \\
+    \const{LOG\_EMERG}   & Il sistema è inutilizzabile.\\
     \const{LOG\_ALERT}   & C'è una emergenza che richiede intervento
                            immediato.\\
     \const{LOG\_CRIT}    & Si è in una condizione critica.\\
     \const{LOG\_ERR}     & Si è in una condizione di errore.\\
     \const{LOG\_WARNING} & Messaggio di avvertimento.\\
     \const{LOG\_NOTICE}  & Notizia significativa relativa al comportamento.\\
-    \const{LOG\_INFO}    & Messaggio informativo. \\
+    \const{LOG\_INFO}    & Messaggio informativo.\\
     \const{LOG\_DEBUG}   & Messaggio di debug.\\
     \hline
   \end{tabular}
@@ -1057,9 +1058,9 @@ stata allocata in precedenza ed essere lunga almeno
   che indica la dimensione che deve avere una stringa per poter contenere il
   nome di un terminale.} caratteri.
 
-Esiste infine una versione rientrante \funcd{ttyname\_r} della funzione
-\func{ttyname}, che non presenta il problema dell'uso di una zona di memoria
-statica; il suo prototipo è:
+Esiste infine una versione \index{funzioni!rientranti} rientrante
+\funcd{ttyname\_r} della funzione \func{ttyname}, che non presenta il problema
+dell'uso di una zona di memoria statica; il suo prototipo è:
 \begin{prototype}{unistd.h}{int ttyname\_r(int desc, char *buff, size\_t len)}
   
   Restituisce il nome del terminale associato al file \param{desc}.
@@ -1146,7 +1147,7 @@ modificare i bit su cui non si interviene.
     \const{IGNBRK} & Ignora le condizioni di BREAK sull'input. Una
                      \textit{condizione di BREAK} è definita nel contesto di
                      una trasmissione seriale asincrona come una sequenza di
-                     bit nulli più lunga di un byte. \\
+                     bit nulli più lunga di un byte.\\
     \const{BRKINT} & Controlla la reazione ad un BREAK quando
                      \const{IGNBRK} non è impostato. Se \const{BRKINT} è
                      impostato il BREAK causa lo scarico delle code, 
@@ -1161,11 +1162,11 @@ modificare i bit su cui non si interviene.
                      (\textit{carriage return}, \verb|'\r'|) viene scartato 
                      dall'input. Può essere utile per i terminali che inviano 
                      entrambi i caratteri di ritorno carrello e a capo 
-                     (\textit{newline}, \verb|'\n'|).  \\
+                     (\textit{newline}, \verb|'\n'|).\\
     \const{ICRNL}  & Se impostato un carattere di ritorno carrello  
                      (\verb|'\r'|) sul terminale viene automaticamente 
                      trasformato in un a capo (\verb|'\n'|) sulla coda di
-                     input. \\
+                     input.\\
     \const{INLCR}  & Se impostato il carattere di a capo
                      (\verb|'\n'|) viene automaticamente trasformato in un
                      ritorno carrello (\verb|'\r'|).\\
@@ -1185,11 +1186,11 @@ modificare i bit su cui non si interviene.
     \const{IXOFF}  & Se impostato abilita il controllo di flusso in
                      ingresso. Il computer emette un carattere di STOP per
                      bloccare l'input dal terminale e lo sblocca con il
-                     carattere START. \\
+                     carattere START.\\
     \const{IMAXBEL}& Se impostato fa suonare il cicalino se si riempie la cosa
                      di ingresso; in Linux non è implementato e il kernel si
                      comporta cose se fosse sempre impostato (è una estensione
-                     BSD). \\
+                     BSD).\\
     \hline
   \end{tabular}
   \caption{Costanti identificative dei vari bit del flag di controllo
@@ -1305,11 +1306,10 @@ valore.
                      \const{O\_NOBLOCK} si bloccherà il processo finché 
                      non si è stabilita una connessione con il modem; inoltre 
                      se viene rilevata una disconnessione viene inviato un
-                     segnale di
-                     \const{SIGHUP} al processo di controllo del terminale. La
-                     lettura su un terminale sconnesso comporta una condizione
-                     di \textit{end of file} e la scrittura un errore di
-                     \errcode{EIO}. \\
+                     segnale di \const{SIGHUP} al processo di controllo del
+                     terminale. La lettura su un terminale sconnesso comporta
+                     una condizione di \textit{end of file} e la scrittura un
+                     errore di \errcode{EIO}.\\
     \const{HUPCL}  & Se è impostato viene distaccata la connessione del
                      modem quando l'ultimo dei processi che ha ancora un file
                      aperto sul terminale lo chiude o esce.\\
@@ -1322,27 +1322,26 @@ valore.
                      parità. La reazione in caso di errori dipende dai
                      relativi valori per \var{c\_iflag}, riportati in 
                      tab.~\ref{tab:sess_termios_iflag}. Se non è impostato i
-                     bit di parità non vengono
-                     generati e i caratteri non vengono controllati.\\
+                     bit di parità non vengono generati e i caratteri non
+                     vengono controllati.\\
     \const{PARODD} & Ha senso solo se è attivo anche \const{PARENB}. Se 
                      impostato viene usata una parità è dispari, altrimenti 
                      viene usata una parità pari.\\
     \const{CSIZE}  & Maschera per i bit usati per specificare la dimensione 
                      del carattere inviato lungo la linea di trasmissione, i
                      valore ne indica la lunghezza (in bit), ed i valori   
-                     possibili sono \val{CS5}, \val{CS6}, 
-                     \val{CS7} e \val{CS8}
+                     possibili sono \val{CS5}, \val{CS6}, \val{CS7} e \val{CS8}
                      corrispondenti ad un analogo numero di bit.\\
     \const{CBAUD}  & Maschera dei bit (4+1) usati per impostare della velocità
-                     della linea (il \textit{baud rate}) in ingresso
-                     In Linux non è implementato in quanto viene 
-                     usato un apposito campo di \struct{termios}.\\
+                     della linea (il \textit{baud rate}) in ingresso; in Linux
+                     non è implementato in quanto viene  usato un apposito
+                     campo di \struct{termios}.\\
     \const{CBAUDEX}& Bit aggiuntivo per l'impostazione della velocità della
                      linea, per le stesse motivazioni del precedente non è
                      implementato in Linux.\\
     \const{CIBAUD} & Maschera dei bit della velocità della linea in
-                     ingresso. Analogo a \const{CBAUD}, anch'esso in Linux è
-                     mantenuto in un apposito campo di \struct{termios}. \\
+                     ingresso; analogo a \const{CBAUD}, anch'esso in Linux è
+                     mantenuto in un apposito campo di \struct{termios}.\\
     \const{CRTSCTS}& Abilita il controllo di flusso hardware sulla seriale,
                      attraverso l'utilizzo delle dei due fili di RTS e CTS.\\
     \hline
@@ -1390,7 +1389,7 @@ fig.~\ref{fig:term_termios}).
                      cancellando l'ultimo carattere della riga corrente dallo
                      schermo; altrimenti il carattere è rimandato in eco per
                      mostrare quanto accaduto (usato per i terminali con
-                     l'uscita su una stampante). \\
+                     l'uscita su una stampante).\\
     \const{ECHOPRT}& Se impostato abilita la visualizzazione del carattere di
                      cancellazione in una modalità adatta ai terminali con
                      l'uscita su stampante; l'invio del carattere di ERASE
@@ -1409,7 +1408,7 @@ fig.~\ref{fig:term_termios}).
                      \const{ECHOE} e \const{ECHOPRT}.\\
     \const{ECHONL} & Se impostato viene effettuato l'eco di un a
                      capo (\verb|\n|) anche se non è stato impostato
-                     \const{ECHO}. \\
+                     \const{ECHO}.\\
     \const{ECHOCTL}& Se impostato insieme ad \const{ECHO} i caratteri di
                      controllo ASCII (tranne TAB, NL, START, e STOP) sono
                      mostrati nella forma che prepone un ``\texttt{\circonf}'' 
@@ -1422,7 +1421,7 @@ fig.~\ref{fig:term_termios}).
     \const{IEXTEN} & Abilita alcune estensioni previste dalla
                      implementazione. Deve essere impostato perché caratteri
                      speciali come EOL2, LNEXT, REPRINT e WERASE possano
-                     essere interpretati. \\
+                     essere interpretati.\\
     \const{NOFLSH} & Se impostato disabilita lo scarico delle code di ingresso
                      e uscita quando vengono emessi i segnali \const{SIGINT}, 
                      \const{SIGQUIT} e \const{SIGSUSP}.\\
@@ -1484,7 +1483,7 @@ altri.\footnote{in Linux il valore della costante 
     \hline
     \const{VINTR} &\texttt{0x03}&(\texttt{C-c})& Carattere di interrupt, 
                                                  provoca l'emissione di 
-                                                 \const{SIGINT}. \\
+                                                 \const{SIGINT}.\\
     \const{VQUIT} &\texttt{0x1C}&(\texttt{C-|})& Carattere di uscita provoca 
                                                  l'emissione di 
                                                  \const{SIGQUIT}.\\
@@ -1523,9 +1522,9 @@ altri.\footnote{in Linux il valore della costante 
     \const{VEOL}  &\texttt{0x00}& NUL &    Carattere di fine riga. Agisce come
                                            un a capo, ma non viene scartato ed
                                            è letto come l'ultimo carattere
-                                           nella riga.  \\
+                                           nella riga.\\
     \const{VREPRINT}&\texttt{0x12}&(\texttt{C-r})& Ristampa i caratteri non
-                                                 ancora letti.  \\
+                                                 ancora letti.\\
     \const{VDISCARD}&\texttt{0x07}&(\texttt{C-o})& Non riconosciuto in Linux.\\
     \const{VWERASE}&\texttt{0x17}&(\texttt{C-w})&Cancellazione di una
                                                  parola.\\
@@ -1533,7 +1532,7 @@ altri.\footnote{in Linux il valore della costante 
                                                  quotare il carattere
                                                  successivo che non viene
                                                  interpretato ma passato
-                                                 direttamente all'output. \\
+                                                 direttamente all'output.\\
     \const{VEOL2} &\texttt{0x00}&   NUL  & Ulteriore carattere di fine
                                            riga. Ha lo stesso effetto di
                                            \const{VEOL} ma può essere un
@@ -1584,7 +1583,7 @@ immagazzinate le impostazioni.  Le funzioni sono \funcd{tcgetattr} e
   \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in
     caso di errore, nel qual caso \var{errno} assumerà i valori:
     \begin{errlist}
-    \item[\errcode{EINTR}] La funzione è stata interrotta. 
+    \item[\errcode{EINTR}] la funzione è stata interrotta. 
     \end{errlist}
     ed inoltre \errval{EBADF}, \errval{ENOTTY} ed \errval{EINVAL}. 
   }
@@ -1630,9 +1629,9 @@ utili qualora si cambino i parametri di output.
     \textbf{Valore}& \textbf{Significato}\\
     \hline
     \hline
-    \const{TCSANOW}  & Esegue i cambiamenti in maniera immediata. \\
+    \const{TCSANOW}  & Esegue i cambiamenti in maniera immediata.\\
     \const{TCSADRAIN}& I cambiamenti vengono eseguiti dopo aver atteso che
-                       tutto l'output presente sulle code è stato scritto. \\
+                       tutto l'output presente sulle code è stato scritto.\\
     \const{TCSAFLUSH}& È identico a \const{TCSADRAIN}, ma in più scarta
                        tutti i dati presenti sulla coda di input.\\
     \hline
@@ -1786,7 +1785,6 @@ i terminali hanno un insieme di funzionalit
 di code di ingresso ed uscita; in generale si fa riferimento ad esse con il
 nome di \textsl{discipline di linea}.
 
-
 Lo standard POSIX prevede alcune funzioni che permettono di intervenire
 direttamente sulla gestione di quest'ultime e sull'interazione fra i dati in
 ingresso ed uscita e le relative code. In generale tutte queste funzioni
@@ -1816,9 +1814,9 @@ La funzione invia un flusso di bit nulli (che genera una condizione di break)
 sul terminale associato a \param{fd}; un valore nullo di \param{duration}
 implica una durata del flusso fra 0.25 e 0.5 secondi, un valore diverso da
 zero implica una durata pari a \code{duration*T} dove \code{T} è un valore
-compreso fra 0.25 e 0.5.\footnote{POSIX specifica il comportamento solo nel
-  caso si sia impostato un valore nullo per \param{duration}; il comportamento
-  negli altri casi può dipendere dalla implementazione.}
+compreso fra 0.25 e 0.5.\footnote{lo standard POSIX specifica il comportamento
+  solo nel caso si sia impostato un valore nullo per \param{duration}; il
+  comportamento negli altri casi può dipendere dalla implementazione.}
 
 Le altre funzioni previste da POSIX servono a controllare il comportamento
 dell'interazione fra le code associate al terminale e l'utente; la prima è
@@ -1869,7 +1867,7 @@ di uscita canceller
     \textbf{Valore}& \textbf{Significato}\\
     \hline
     \hline
-    \const{TCIFLUSH} & Cancella i dati sulla coda di ingresso. \\
+    \const{TCIFLUSH} & Cancella i dati sulla coda di ingresso.\\
     \const{TCOFLUSH} & Cancella i dati sulla coda di uscita. \\
     \const{TCIOFLUSH}& Cancella i dati su entrambe le code.\\
     \hline
@@ -1913,7 +1911,7 @@ riportati in tab.~\ref{tab:sess_tcflow_action}.
     \const{TCOOFF}& Sospende l'output.\\
     \const{TCOON} & Riprende un output precedentemente sospeso.\\
     \const{TCIOFF}& Il sistema trasmette un carattere di STOP, che 
-                    fa interrompere la trasmissione dei dati dal terminale.  \\
+                    fa interrompere la trasmissione dei dati dal terminale.\\
     \const{TCION} & Il sistema trasmette un carattere di START, che 
                     fa riprendere la trasmissione dei dati dal terminale.\\
     \hline
@@ -1924,6 +1922,7 @@ riportati in tab.~\ref{tab:sess_tcflow_action}.
 \end{table}
 
 
+
 \subsection{Operare in \textsl{modo non canonico}}
 \label{sec:term_non_canonical}
 
@@ -1992,12 +1991,24 @@ Da fare.
 \label{sec:sess_pty}
 
 Qui vanno spiegati i terminali virtuali, \file{/dev/pty} e compagnia.
+% vedi man pts
+
 
-\subsection{La funzione \func{openpty}}
+\subsection{Allocazione dei terminale virtuali}
 \label{sec:sess_openpty}
 
 Qui vanno le cose su \func{openpty} e compagnia.
 
+% TODO le ioctl dei terminali
+% TODO trattare \func{posix\_openpt}
+
+
+
+% TODO materiale sulle seriali
+% vedi http://www.easysw.com/~mike/serial/serial.html
+% TODO materiale generico sul layer TTY
+% vedi http://www.linusakesson.net/programming/tty/index.php
+
 
 % LocalWords:  kernel multitasking dell'I job control BSD POSIX shell sez group
 % LocalWords:  foreground process bg fg Di waitpid WUNTRACED pgrp session sched