sé stesso, in modo che il cambiamento di \textit{process group} sia immediato
per entrambi; una delle due chiamate sarà ridondante, ma non potendo
determinare quale dei due processi viene eseguito per primo, occorre eseguirle
-comunque entrambe per evitare di esporsi ad una race
-condition\index{\textit{race~condition}}.
+comunque entrambe per evitare di esporsi ad una \textit{race
+ condition}\itindex{race~condition}.
Si noti come nessuna delle funzioni esaminate finora permetta di spostare un
processo da una sessione ad un altra; infatti l'unico modo di far cambiare
\const{SIGQUIT} e \const{SIGTERM}, trattati in sez.~\ref{sec:sig_job_control})
a tutti i processi del raggruppamento di \textit{foreground}; in questo modo
la shell può gestire il blocco e l'interruzione dei vari comandi.
-
+
+
Per completare la trattazione delle caratteristiche del job control legate al
terminale di controllo, occorre prendere in considerazione i vari casi legati
alla terminazione anomala dei processi, che sono di norma gestite attraverso
il segnale \const{SIGHUP}. Il nome del segnale deriva da \textit{hungup},
termine che viene usato per indicare la condizione in cui il terminale diventa
-inutilizzabile, (letteralmente sarebbe \textsl{impiccagione}).
+inutilizzabile, (letteralmente sarebbe \textsl{impiccagione}).
Quando si verifica questa condizione, ad esempio se si interrompe la linea, o
va giù la rete o più semplicemente si chiude forzatamente la finestra di
verrà cambiata l'identità del proprietario del processo, infatti, come
spiegato in sez.~\ref{sec:proc_setuid}, avendo invocato tali funzioni con i
privilegi di amministratore, tutti gli user-ID ed i group-ID (reali, effettivi
-e salvati) saranno settati a quelli dell'utente.
+e salvati) saranno impostati a quelli dell'utente.
A questo punto \cmd{login} provvederà (fatte salve eventuali altre azioni
iniziali, come la stampa di messaggi di benvenuto o il controllo della posta)
Dato che il processo padre resta sempre \cmd{init} quest'ultimo potrà
provvedere, ricevendo un \const{SIGCHLD} all'uscita della shell quando la
sessione di lavoro è terminata, a rilanciare \cmd{getty} sul terminale per
-ripetere da capo tutto il procedimento.
+ripetere da capo tutto il procedimento.
L'argomento \param{priority} permette di impostare sia la \textit{facility}
che la \textit{priority} del messaggio. In realtà viene prevalentemente usato
-per specificare solo quest'ultima in quanto la prima viene di norma
+per specificare solo quest'ultima in quanto la prima viene di norma
preimpostata con \func{openlog}. La priorità è indicata con un valore
numerico\footnote{le \acr{glibc}, seguendo POSIX.1-2001, prevedono otto
diverse priorità ordinate da 0 a 7, in ordine di importanza decrescente;
Le routine di gestione mantengono per ogni processo una maschera che determina
quale delle chiamate effettuate a \func{syslog} verrà effettivamente
registrata. La registrazione viene disabilitata per tutte quelle priorità che
-non rientrano nella maschera; questa viene settata usando la macro
+non rientrano nella maschera; questa viene impostata usando la macro
\macro{LOG\_MASK(p)} dove \code{p} è una delle costanti di
tab.~\ref{tab:sess_syslog_priority}. É inoltre disponibile anche la macro
\macro{LOG\_UPTO(p)} che permette di specificare automaticamente tutte le
\textit{pathname} del terminale.}
\end{prototype}
-La funzione scrive il \index{\textit{pathname}}\textit{pathname} del terminale
-di controllo del processo chiamante nella stringa posta all'indirizzo
-specificato dall'argomento \param{s}. La memoria per contenere la stringa
-deve essere stata allocata in precedenza ed essere lunga almeno
+La funzione scrive il \itindex{pathname}\textit{pathname} del terminale di
+controllo del processo chiamante nella stringa posta all'indirizzo specificato
+dall'argomento \param{s}. La memoria per contenere la stringa deve essere
+stata allocata in precedenza ed essere lunga almeno
\const{L\_ctermid}\footnote{\const{L\_ctermid} è una delle varie costanti del
sistema, non trattata esplicitamente in sez.~\ref{sec:sys_characteristics}
che indica la dimensione che deve avere una stringa per poter contenere il
Se si passa come argomento \val{NULL} la funzione restituisce il puntatore ad
una stringa statica che può essere sovrascritta da chiamate successive. Si
-tenga presente che il \index{\textit{pathname}}\textit{pathname} restituito
+tenga presente che il \itindex{pathname}\textit{pathname} restituito
potrebbe non identificare univocamente il terminale (ad esempio potrebbe
essere \file{/dev/tty}), inoltre non è detto che il processo possa
effettivamente aprire il terminale.
parità, se non impostato un carattere con errori di
parità viene letto come uno \texttt{0x00}. Se un
carattere ha il valore \texttt{0xFF} e \const{ISTRIP}
- non è settato, per evitare ambiguità esso viene sempre
+ non è impostato, per evitare ambiguità esso viene sempre
riportato come \texttt{0xFF 0xFF}.\\
\const{ISTRIP} & Se impostato i caratteri in input sono tagliati a sette
bit mettendo a zero il bit più significativo, altrimenti
gruppo in foreground anche l'invio di \const{SIGINT} ai
processi di quest'ultimo. Se invece \const{BRKINT} non è
impostato un BREAK viene letto come un carattere
- NUL, a meno che non sia settato \const{PARMRK}
+ NUL, a meno che non sia impostato \const{PARMRK}
nel qual caso viene letto come la sequenza di caratteri
\texttt{0xFF 0x00 0x00}.\\
\const{IGNCR} & Se impostato il carattere di ritorno carrello
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 settato (è una estensione
+ comporta cose se fosse sempre impostato (è una estensione
BSD). \\
\hline
\end{tabular}
\const{TOSTOP} & Se abilitato, con il supporto per il job control presente,
genera il segnale \const{SIGTTOU} per un processo in
background che cerca di scrivere sul terminale.\\
- \const{XCASE} & Se settato il terminale funziona solo con le
+ \const{XCASE} & Se impostato il terminale funziona solo con le
maiuscole. L'input è convertito in minuscole tranne per i
caratteri preceduti da una \verb|\|. In output le
maiuscole sono precedute da una \verb|\| e le minuscole
convertite in maiuscole.\\
- \const{DEFECHO}& Se impostate effettua l'eco solo se c'è un processo in
+ \const{DEFECHO}& Se impostato effettua l'eco solo se c'è un processo in
lettura.\\
\const{FLUSHO} & Effettua la cancellazione della coda di uscita. Viene
attivato dal carattere DISCARD. Non è supportato in
La maggior parte di questi caratteri (tutti tranne \const{VTIME} e
\const{VMIN}) hanno effetto solo quando il terminale viene utilizzato in modo
canonico; per alcuni devono essere soddisfatte ulteriori richieste, ad esempio
-\const{VINTR}, \const{VSUSP}, e \const{VQUIT} richiedono sia settato
-\const{ISIG}; \const{VSTART} e \const{VSTOP} richiedono sia settato
+\const{VINTR}, \const{VSUSP}, e \const{VQUIT} richiedono sia impostato
+\const{ISIG}; \const{VSTART} e \const{VSTOP} richiedono sia impostato
\const{IXON}; \const{VLNEXT}, \const{VWERASE}, \const{VREPRINT} richiedono sia
-settato \const{IEXTEN}. In ogni caso quando vengono attivati i caratteri
+impostato \const{IEXTEN}. In ogni caso quando vengono attivati i caratteri
vengono interpretati e non sono passati sulla coda di ingresso.
Per leggere ed scrivere tutte le varie impostazioni dei terminali viste finora
Anche in questo caso le due funzioni estraggono i valori della velocità della
linea da una struttura, il cui indirizzo è specificato dall'argomento
\param{termios\_p} che deve essere stata letta in precedenza con
-\func{tcgetaddr}.
+\func{tcgetattr}.
funzioni di scrittura, pertanto se usate da processi in background sul loro
terminale di controllo provocano l'emissione di \const{SIGTTOU} come
illustrato in sez.~\ref{sec:sess_ctrl_term}.\footnote{con la stessa eccezione,
- già vista per \func{tcsetaddr}, che quest'ultimo sia bloccato o ignorato dal
+ già vista per \func{tcsetattr}, che quest'ultimo sia bloccato o ignorato dal
processo chiamante.}
Una prima funzione, che è efficace solo in caso di terminali seriali asincroni