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.
+comunque entrambe per evitare di esporsi ad una race
+condition\index{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
Infine attraverso l'uso di \func{setuid}, \func{setpid} e \func{initgroups}
verrà cambiata l'identità del proprietario del processo, infatti, come
spiegato in \secref{sec:proc_setuid}, avendo invocato tali funzioni con i
-privilegi di amministratore, tutti gli userid ed i groupid (reali, effettivi e
-salvati) saranno settati a quelli dell'utente.
+privilegi di amministratore, tutti gli user-ID ed i group-ID (reali, effettivi
+e salvati) saranno settati 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)
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}
+ \begin{lstlisting}[stepnumber=0]{}
struct termios {
tcflag_t c_iflag; /* input modes */
tcflag_t c_oflag; /* output modes */
spiegazione corrispondente) sono numerici e non per bit, per cui possono
sovrapporsi fra di loro. Occorrerà perciò utilizzare un codice del tipo:
-\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}%
+\begin{lstlisting}[stepnumber=0,frame=]{}
c_oflag &= (~CRDLY);
c_oflag |= CR1;
\end{lstlisting}
associate è riportato in \tabref{tab:sess_termios_cc}, usando quelle
definizioni diventa possibile assegnare un nuovo carattere di controllo con un
codice del tipo:
-\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}%
+\begin{lstlisting}[stepnumber=0,frame=]{}
value.c_cc[VEOL2] = '\n';
\end{lstlisting}
\begin{figure}[!htb]
\footnotesize
- \begin{lstlisting}{}%
+ \begin{lstlisting}{}
#include <unistd.h>
#include <termios.h>
#include <errno.h>
\begin{figure}[!htb]
\footnotesize
- \begin{lstlisting}{}%
+ \begin{lstlisting}{}
int UnSetTermAttr(int fd, tcflag_t flag)
{
struct termios values;
entrambe), operare. Esso può prendere i valori riportati in
\tabref{tab:sess_tcflush_queue}, nel caso si specifichi la coda di ingresso
cancellerà i dati ricevuti ma non ancora letti, nel caso si specifichi la coda
-di uscita cancellerài dati scritti ma non ancora trasmessi.
+di uscita cancellerà i dati scritti ma non ancora trasmessi.
\begin{table}[htb]
\footnotesize
\funcdecl{int tcflow(int fd, int action)}
- Sospende e rivvia il flusso dei dati sul terminale.
+ Sospende e riavvia il flusso dei dati sul terminale.
\bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
errore, nel qual caso \var{errno} assumerà i valori \errval{EBADF} o