X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=session.tex;h=6fd9027748b84088c909196cb9eaf839571b4ac1;hp=12e2beb75609fbb9efef29d26349c946f8215545;hb=1add1cb54c1754ed030033b994a68c6678d7d275;hpb=f8766706e9000d5de140b1670aebc6a76cf9f02d diff --git a/session.tex b/session.tex index 12e2beb..6fd9027 100644 --- a/session.tex +++ b/session.tex @@ -336,13 +336,13 @@ divenuto un nuovo leader di sessione dovrà riottenere\footnote{solo quando ciò sempre vera.}, un terminale di controllo. In generale questo viene fatto automaticamente dal sistema\footnote{a meno di non avere richiesto esplicitamente che questo non diventi un terminale di controllo con il flag - \const{O\_NOCTTY} (vedi sez.~\ref{sec:file_open}). In questo Linux segue la - semantica di SVr4; BSD invece richiede che il terminale venga allocato - esplicitamente con una \func{ioctl} con il comando \const{TIOCSCTTY}.} -quando viene aperto il primo terminale (cioè uno dei vari file di dispositivo -\file{/dev/tty*}) che diventa automaticamente il terminale di controllo, -mentre il processo diventa il \textsl{processo di controllo} di quella -sessione. + \const{O\_NOCTTY} (vedi sez.~\ref{sec:file_open_close}). In questo Linux + segue la semantica di SVr4; BSD invece richiede che il terminale venga + allocato esplicitamente con una \func{ioctl} con il comando + \const{TIOCSCTTY}.} quando viene aperto il primo terminale (cioè uno dei +vari file di dispositivo \file{/dev/tty*}) che diventa automaticamente il +terminale di controllo, mentre il processo diventa il \textsl{processo di + controllo} di quella sessione. In genere (a meno di redirezioni) nelle sessioni di lavoro questo terminale è associato ai file standard (di input, output ed error) dei processi nella @@ -1193,8 +1193,8 @@ disco e agli altri dispositivi. -\subsection{L'architettura} -\label{sec:term_design} +\subsection{L'architettura dell'I/O su terminale} +\label{sec:term_io_design} I terminali sono una classe speciale di dispositivi a caratteri (si ricordi la classificazione di sez.~\ref{sec:file_file_types}); un terminale ha infatti una @@ -1232,6 +1232,9 @@ una delle principali infatti è che essi prevedono due modalità di operazione, dette rispettivamente ``\textsl{modo canonico}'' e ``\textsl{modo non canonico}'', che hanno dei comportamenti nettamente diversi. +% TODO: inserire qui il comportamento di read relativo all'errore EIO sulla +% lettura in background??? + La modalità preimpostata all'apertura del terminale è quella canonica, in cui le operazioni di lettura vengono sempre effettuate assemblando i dati in una linea;\footnote{per cui eseguendo una \func{read} su un terminale in modo @@ -1641,7 +1644,7 @@ valore. e che le linee di controllo del modem devono essere ignorate. Se non impostato effettuando una chiamata ad \func{open} senza aver specificato il flag di - \const{O\_NOBLOCK} si bloccherà il processo finché + \const{O\_NONBLOCK} si bloccherà il processo finché non si è stabilita una connessione con il modem; inoltre se viene rilevata una disconnessione viene inviato un segnale di \signal{SIGHUP} al processo di controllo del @@ -2396,7 +2399,7 @@ Qui vanno le cose su \func{openpty} e compagnia. % LocalWords: BRKINT IGNCR carriage return newline ICRNL INLCR IUCLC IXON NL % LocalWords: IXANY IXOFF IMAXBEL iflag OPOST CR OCRNL OLCUC ONLCR ONOCR OFILL % LocalWords: ONLRET OFDEL NLDLY CRDLY TABDLY BSDLY backspace BS VTDLY FFDLY -% LocalWords: form feed FF oflag CLOCAL NOBLOCK of HUPCL CREAD CSTOPB PARENB +% LocalWords: form feed FF oflag CLOCAL of HUPCL CREAD CSTOPB PARENB % LocalWords: PARODD CSIZE CS CBAUD CBAUDEX CIBAUD CRTSCTS RTS CTS cflag ECHO % LocalWords: ICANON ECHOE ERASE ECHOPRT ECHOK ECHOKE ECHONL ECHOCTL ctrl ISIG % LocalWords: INTR QUIT SUSP IEXTEN EOL LNEXT REPRINT WERASE NOFLSH and TOSTOP