levato di mezzo l'uso improprio di settare e default
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 9 Aug 2002 17:29:38 +0000 (17:29 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 9 Aug 2002 17:29:38 +0000 (17:29 +0000)
16 files changed:
elemtcp.tex
errors.tex
fileadv.tex
filedir.tex
fileintro.tex
filestd.tex
fileunix.tex
gapil.tex
ipc.tex
ipprot.tex
process.tex
prochand.tex
signal.tex
simpltcp.tex
socket.tex
system.tex

index 7ba25a084091451abc34ab419a2dc93fb23bb543..1678559a0c6ab31a1347fba1550b2a088d767f60 100644 (file)
@@ -60,8 +60,8 @@ creazione di una connessione 
 \item il server deve dare ricevuto (l'\textit{acknowledge}) del SYN del
   client, inoltre anche il server deve inviare il suo SYN al client (e
   trasmettere il suo numero di sequenza iniziale) questo viene fatto
-  ritrasmettendo un singolo segmento in cui entrambi i flag SYN ACK e sono
-  settati.
+  ritrasmettendo un singolo segmento in cui sono impostati entrambi i flag SYN
+  ACK.
   
 \item una volta che il client ha ricevuto l'acknowledge dal server la funzione
   \func{connect} ritorna, l'ultimo passo è dare dare il ricevuto del SYN del
@@ -100,7 +100,7 @@ segmento.
 Il numero di sequenza di ciascun segmento viene calcolato a partire da un
 \textsl{numero di sequenza iniziale} generato in maniera casuale del kernel
 all'inizio della connessione e trasmesso con il SYN; l'acknowledgement di
-ciascun segmento viene effettuato dall'altro capo della connessione settando
+ciascun segmento viene effettuato dall'altro capo della connessione impostando
 il flag ACK e restituendo nell'apposito campo dell'header un
 \textit{acknowledge number}) pari al numero di sequenza che il ricevente si
 aspetta di ricevere con il pacchetto successivo; dato che il primo pacchetto
@@ -642,8 +642,8 @@ ci si porr
   contiene, secondo quanto già trattato in \secref{sec:sock_sockaddr}.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
-    errore; in caso di errore la variabile \var{errno} viene settata secondo i
-    seguenti codici di errore:
+    errore; in caso di errore la variabile \var{errno} viene impostata secondo
+    seguenti codici di errore:
   \begin{errlist}
   \item[\macro{EBADF}] il file descriptor non è valido.
   \item[\macro{EINVAL}] il socket ha già un indirizzo assegnato.
@@ -728,17 +728,19 @@ connessione con un server TCP, il prototipo della funzione 
   socket, già descritta in \secref{sec:sock_sockaddr}.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
-    errore, in caso di errore la variabile \var{errno} viene settata secondo i
-    seguenti codici di errore:
+    errore, in caso di errore la variabile \var{errno} viene impostata secondo
+    seguenti codici di errore:
   \begin{errlist}
   \item[\macro{ECONNREFUSED}] non c'è nessuno in ascolto sull'indirizzo remoto.
   \item[\macro{ETIMEDOUT}] si è avuto timeout durante il tentativo di
     connessione.
   \item[\macro{ENETUNREACH}] la rete non è raggiungibile.
-  \item[\macro{EINPROGRESS}] il socket è non bloccante e la connessione non
-    può essere conclusa immediatamente.
-  \item[\macro{EALREADY}] il socket è non bloccante e un tentativo precedente
-    di connessione non si è ancora concluso.
+  \item[\macro{EINPROGRESS}] il socket è non bloccante (vedi
+    \secref{sec:file_noblocking}) e la connessione non può essere conclusa
+    immediatamente.
+  \item[\macro{EALREADY}] il socket è non bloccante (vedi
+    \secref{sec:file_noblocking}) e un tentativo precedente di connessione non
+    si è ancora concluso.
   \item[\macro{EAGAIN}] non ci sono più porte locali libere. 
   \item[\macro{EAFNOSUPPORT}] l'indirizzo non ha una famiglia di indirizzi
     corretta nel relativo campo.
@@ -769,11 +771,11 @@ seguenti:
   invece ripete l'emissione del SYN ad intervalli di 30 secondi per un numero
   di volte che può essere stabilito dall'utente sia con una opportuna
   \func{sysctl} che attraverso il filesystem \file{/proc} scrivendo il valore
-  voluto in \file{/proc/sys/net/ipv4/tcp\_syn\_retries}. Il valore di default
+  voluto in \file{/proc/sys/net/ipv4/tcp\_syn\_retries}. Il valore predefinito
   per la ripetizione dell'invio è di 5 volte, che comporta un timeout dopo
   circa 180 secondi.
 %
-% Le informazioni su tutte le opzioni settabili via /proc stanno in
+% Le informazioni su tutte le opzioni impostabili via /proc stanno in
 % Linux/Documentation/networking/ip-sysctl.txt
 %
 \item Il client riceve come risposta al SYN un RST significa che non c'è
@@ -944,7 +946,7 @@ viene messo in attesa. Il prototipo della funzione 
  
   \bodydesc{La funzione restituisce un numero di socket descriptor positivo in
     caso di successo e -1 in caso di errore, nel qual caso la variabile
-    \var{errno} viene settata ai seguenti valori:
+    \var{errno} viene impostata ai seguenti valori:
 
   \begin{errlist}
   \item[\macro{EBADF}] l'argomento \var{sockfd} non è un file descriptor
@@ -952,8 +954,9 @@ viene messo in attesa. Il prototipo della funzione 
   \item[\macro{ENOTSOCK}] l'argomento \var{sockfd} non è un socket.
   \item[\macro{EOPNOTSUPP}] il socket è di un tipo che non supporta questa
     operazione.    
-  \item[\macro{EAGAIN} o \macro{EWOULDBLOCK}] il socket è stato settato come
-    non bloccante, e non ci sono connessioni in attesa di essere accettate.
+  \item[\macro{EAGAIN} o \macro{EWOULDBLOCK}] il socket è stato impostato come
+    non bloccante (vedi \secref{sec:file_noblocking}), e non ci sono
+    connessioni in attesa di essere accettate.
   \item[\macro{EPERM}] Le regole del firewall non consentono la connessione.
   \item[\macro{ENOBUFS, ENOMEM}] questo spesso significa che l'allocazione
     della memoria è limitata dai limiti sui buffer dei socket, non dalla
@@ -999,10 +1002,11 @@ prima connessione completa (estratta dalla relativa coda, vedi
 socket \var{sockfd}. Quest'ultimo (detto \textit{listening socket}) è quello
 creato all'inizio e messo in ascolto con \func{listen}, e non viene toccato
 dalla funzione.  Se non ci sono connessioni pendenti da accettare la funzione
-mette in attesa il processo\footnote{a meno che non si sia settato il socket
-  per essere non-bloccante, nel qual caso ritorna con l'errore \macro{EAGAIN}.
-  Torneremo su questa modalità di operazione in
-  \secref{sec:xxx_sock_noblock}.}  fintanto che non ne arriva una.
+mette in attesa il processo\footnote{a meno che non si sia imopstato il socket
+  per essere non bloccante (vedi \secref{sec:file_noblocking}), nel qual caso
+  ritorna con l'errore \macro{EAGAIN}.  Torneremo su questa modalità di
+  operazione in \secref{sec:xxx_sock_noblock}.}  fintanto che non ne arriva
+una.
  
 Il meccanismo di funzionamento di \func{accept} è essenziale per capire il
 funzionamento di un server: in generale infatti c'è sempre un solo socket in
index c92ae3a9891ebbda8717947ee6c9f66112015062..547bb1caffd1f28143dbbe7ef05be2c31cceb50b 100644 (file)
@@ -91,7 +91,7 @@ gestione dei file.
   \secref{sec:sys_limits}).
 \item \macro{EPIPE} \textit{Broken pipe}. Non c'è un processo che stia
   leggendo l'altro capo della pipe. Ogni funzione che restituisce questo
-  errore genera anche un segnale \macro{SIGPIPE}, la cui azione di default è
+  errore genera anche un segnale \macro{SIGPIPE}, la cui azione predefinita è
   terminare il programma; pertanto non si potrà vedere questo errore fintanto
   che \macro{SIGPIPE} non viene gestito o bloccato.
 \item \macro{ENOTEMPTY} \textit{Directory not empty}. La directory non è vuota
@@ -114,7 +114,7 @@ gestione dei file.
 \item \macro{EFTYPE} \textit{Inappropriate file type or format}. Il file è di
   tipo sbagliato rispetto all'operazione richiesta o un file di dati ha un
   formato sbagliato. Alcuni sistemi restituiscono questo errore quando si
-  cerca di settare lo \textit{sticky bit} su un file che non è una directory.
+  cerca di impostare lo \textit{sticky bit} su un file che non è una directory.
 \end{description}
 
 
@@ -190,7 +190,7 @@ gestione dei socket e delle connessioni di rete.
   fallita perché l'indirizzo richiesto è irraggiungibile (ad esempio la
   sottorete della stazione remota è irraggiungibile).
 \item \macro{ENETRESET} \textit{Network dropped connection because of reset}.
-  Una connessione è stata resettata perché l'host remoto è caduto.
+  Una connessione è stata cancellata perché l'host remoto è caduto.
 \item \macro{ECONNABORTED} \textit{Software caused connection abort}. Una
   connessione è stata abortita localmente. 
 \item \macro{ECONNRESET} \textit{Connection reset by peer}. Una connessione è
@@ -210,9 +210,9 @@ gestione dei socket e delle connessioni di rete.
   destinazione. Nel caso di socket senza connessione (ad esempio socket UDP)
   l'errore che si ottiene è \macro{EDESTADDRREQ}.
 \item \macro{EDESTADDRREQ} \textit{Destination address required}. Non c'è un
-  indirizzo di destinazione di default per il socket. Si ottiene questo errore
-  mandando dato su un socket senza connessione senza averne prima specificato
-  una destinazione.
+  indirizzo di destinazione predefinito per il socket. Si ottiene questo
+  errore mandando dato su un socket senza connessione senza averne prima
+  specificato una destinazione.
 \item \macro{ESHUTDOWN} \textit{Cannot send after transport endpoint
     shutdown}. Il socket su cui si cerca di inviare dei dati ha avuto uno
   shutdown.
index 40dc7a50fe7f6b7dba6cdea07f6ed4699de324ea..687d7cd52403e07036170e3d91eab53b0ab959df 100644 (file)
@@ -78,7 +78,7 @@ con la funzione \func{select}, il cui prototipo 
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene settata ai valori:
+    caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -141,9 +141,9 @@ pi
 
 Infine l'argomento \param{timeout}, specifica un tempo massimo di
 attesa\footnote{il tempo è valutato come \textit{elapsed time}.} prima che la
-funzione ritorni; se settato a \macro{NULL} la funzione attende
+funzione ritorni; se impostato a \macro{NULL} la funzione attende
 indefinitamente. Si può specificare anche un tempo nullo (cioè una \var{struct
-  timeval} con i campi settati a zero), qualora si voglia semplicemente
+  timeval} con i campi impostati a zero), qualora si voglia semplicemente
 controllare lo stato corrente dei file descriptor.
 
 La funzione restituisce il totale dei file descriptor pronti nei tre insiemi,
@@ -153,16 +153,17 @@ operazioni ad esso relative, in modo da poterlo controllare con la macro
 \macro{FD\_ISSET}. In caso di errore la funzione restituisce -1 e gli insiemi
 non vengono toccati.
 
-In Linux \func{select} modifica anche il valore di \param{timeout}, settandolo
-al tempo restante; questo è utile quando la funzione viene interrotta da un
-segnale, in tal caso infatti si ha un errore di \macro{EINTR}, ed occorre
-rilanciare la funzione; in questo modo non è necessario ricalcolare tutte le
-volte il tempo rimanente.\footnote{questo può causare problemi di portabilità
-  sia quando si trasporta codice scritto su Linux che legge questo valore, sia
-  quando si usano programmi scritti per altri sistemi che non dispongono di
-  questa caratteristica e ricalcolano \param{timeout} tutte le volte. In
-  genere la caratteristica è disponibile nei sistemi che derivano da System V
-  e non disponibile per quelli che derivano da BSD.}
+In Linux \func{select} modifica anche il valore di \param{timeout},
+impostandolo al tempo restante; questo è utile quando la funzione viene
+interrotta da un segnale, in tal caso infatti si ha un errore di
+\macro{EINTR}, ed occorre rilanciare la funzione; in questo modo non è
+necessario ricalcolare tutte le volte il tempo rimanente.\footnote{questo può
+  causare problemi di portabilità sia quando si trasporta codice scritto su
+  Linux che legge questo valore, sia quando si usano programmi scritti per
+  altri sistemi che non dispongono di questa caratteristica e ricalcolano
+  \param{timeout} tutte le volte. In genere la caratteristica è disponibile
+  nei sistemi che derivano da System V e non disponibile per quelli che
+  derivano da BSD.}
 
 Come accennato l'interfaccia di \func{select} è una estensione di BSD; anche
 System V ha introdotto una sua interfaccia per gestire l'\textit{I/O
@@ -177,7 +178,7 @@ specificati da \param{ufds}.
   
 \bodydesc{La funzione restituisce il numero di file descriptor con attività in
   caso di successo, o 0 se c'è stato un timeout; in caso di errore viene
-  restituito  -1 ed \var{errno} viene settata ai valori:
+  restituito  -1 ed \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -248,10 +249,10 @@ vengono utilizzati solo per \var{revents} come valori in uscita).
 \end{table}
 
 La funzione ritorna, restituendo il numero di file per i quali si è verificata
-una delle condizioni di attesa richieste o un errore. Lo stato dei file
+una delle condizioni di attesa richieste od un errore. Lo stato dei file
 all'uscita della funzione viene restituito nel campo \var{revents} della
-relativa struttura \type{pollfd}, che viene settato alla maschera binaria dei
-valori riportati in \tabref{tab:file_pollfd_flags}, ed oltre alle tre
+relativa struttura \type{pollfd}, che viene impostato alla maschera binaria
+dei valori riportati in \tabref{tab:file_pollfd_flags}, ed oltre alle tre
 condizioni specificate tramite \var{events} può riportare anche l'occorrere di
 una condizione di errore.
 
@@ -277,7 +278,7 @@ sostituisce i precedenti, ed aggiunge a \func{select} una nuova funzione
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene settata ai valori:
+    caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -299,7 +300,7 @@ L'uso di \param{sigmask} 
 race condition\footnote{in Linux però, non esistendo una system call apposita,
   la funzione è implementata nelle \acr{glibc} usando \func{select}, e la
   possibilità di una race condition resta.} quando si deve eseguire un test su
-una variabile settata da un manipolatore sulla base dell'occorrenza di un
+una variabile assegnata da un manipolatore sulla base dell'occorrenza di un
 segnale per decidere se lanciare \func{select}. Fra il test e l'esecuzione è
 presente una finestra in cui potrebbe arrivare il segnale che non sarebbe
 rilevato; la race condition diventa superabile disabilitando il segnale prima
@@ -322,9 +323,9 @@ Abbiamo accennato in \secref{sec:file_open} che 
 del flag \macro{O\_ASYNC},\footnote{l'uso del flag di \macro{O\_ASYNC} e dei
   comandi \macro{F\_SETOWN} e \macro{F\_GETOWN} per \func{fcntl} è specifico
   di Linux e BSD.} aprire un file in modalità asincrona, così come è possibile
-attivare in un secondo tempo questa modalità settando questo flag attraverso
+attivare in un secondo tempo questa modalità impostando questo flag attraverso
 l'uso di \func{fcntl} con il comando \macro{F\_SETFL} (vedi
-\secref{sec:file_fcntl}). 
+\secref{sec:file_fcntl}).
 
 In realtà in questo caso non si tratta di I/O asincrono vero e proprio, quanto
 di un meccanismo asincrono di notifica delle variazione dello stato del file
@@ -351,9 +352,9 @@ attraverso la struttura \type{siginfo\_t}, utilizzando la forma estesa
 \secref{sec:sig_sigaction}).
 
 Per far questo però occorre utilizzare le funzionalità dei segnali real-time
-(vedi \secref{sec:sig_real_time}) settando esplicitamente con il comando
+(vedi \secref{sec:sig_real_time}) imopstando esplicitamente con il comando
 \macro{F\_SETSIG} di \func{fcntl} un segnale real-time da inviare in caso di
-I/O asincrono (il segnale di default è \macro{SIGIO}). In questo caso il
+I/O asincrono (il segnale predefinito è \macro{SIGIO}). In questo caso il
 manipolatore tutte le volte che riceverà \macro{SI\_SIGIO} come valore del
 campo \var{si\_code}\footnote{il valore resta \macro{SI\_SIGIO} qualunque sia
   il segnale che si è associato all'I/O asincrono, ed indica appunto che il
@@ -436,13 +437,13 @@ sul file da cui i dati saranno letti o scritti.  Nel campo \var{aio\_buf} deve
 essere specificato l'indirizzo del buffer usato per l'I/O, ed in
 \var{aio\_nbytes} la lunghezza del blocco di dati da trasferire.
 
-Il campo \var{aio\_reqprio} permette di settare la priorità delle operazioni
+Il campo \var{aio\_reqprio} permette di impostare la priorità delle operazioni
 di I/O.\footnote{in generale perché ciò sia possibile occorre che la
   piattaforma supporti questa caratteristica, questo viene indicato definendo
   le macro \macro{\_POSIX\_PRIORITIZED\_IO}, e
-  \macro{\_POSIX\_PRIORITY\_SCHEDULING}.} La priorità viene settata a partire
-da quella del processo chiamante (vedi \secref{sec:proc_priority}), cui viene
-sottratto il valore di questo campo.
+  \macro{\_POSIX\_PRIORITY\_SCHEDULING}.} La priorità viene impostata a
+partire da quella del processo chiamante (vedi \secref{sec:proc_priority}),
+cui viene sottratto il valore di questo campo.
 
 Il campo \var{aio\_lio\_opcode} è usato soltanto dalla funzione
 \func{lio\_listio}, che, come vedremo più avanti, permette di eseguire con una
@@ -502,7 +503,7 @@ appena descritta; i rispettivi prototipi sono:
   \param{aiocbp}.
   
   \bodydesc{Le funzioni restituiscono 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato.
   \item[\macro{ENOSYS}] La funzione non è implementata.
@@ -561,9 +562,9 @@ errore; il suo prototipo 
 Se l'operazione non si è ancora completata viene restituito l'errore di
 \macro{EINPROGRESS}. La funzione ritorna zero quando l'operazione si è
 conclusa con successo, altrimenti restituisce il codice dell'errore
-verificatosi, ed esegue il corrispondente settaggio di \var{errno}. Il codice
-può essere sia \macro{EINVAL} ed \macro{EBADF}, dovuti ad un valore errato per
-\param{aiocbp}, che uno degli errori possibili durante l'esecuzione
+verificatosi, ed esegue la corrispondente impostazione di \var{errno}. Il
+codice può essere sia \macro{EINVAL} ed \macro{EBADF}, dovuti ad un valore
+errato per \param{aiocbp}, che uno degli errori possibili durante l'esecuzione
 dell'operazione di I/O richiesta, nel qual caso saranno restituiti, a seconda
 del caso, i codici di errore delle system call \func{read}, \func{write} e
 \func{fsync}.
@@ -639,7 +640,7 @@ da \param{aiocbp}.
   
 \bodydesc{La funzione restituisce il risultato dell'operazione con un codice
   di positivo, e -1 in caso di errore, che avviene qualora si sia specificato
-  un valore non valido di \param{fildes}, setta \var{errno} al valore
+  un valore non valido di \param{fildes}, imposta \var{errno} al valore
   \macro{EBADF}.}
 \end{prototype}
 
@@ -683,7 +684,7 @@ specifica operazione; il suo prototipo 
   
   \bodydesc{La funzione restituisce 0 se una (o più) operazioni sono state
     completate, e -1 in caso di errore nel qual caso \var{errno} viene
-    settata ai valori:
+    impostata ai valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -714,7 +715,7 @@ lettura o scrittura; il suo prototipo 
   secondo la modalità \param{mode}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -744,7 +745,7 @@ funzione, se viene specificato il valore \macro{LIO\_WAIT} la funzione si
 blocca fino al completamento di tutte le operazioni richieste; se invece si
 specifica \macro{LIO\_NOWAIT} la funzione ritorna immediatamente dopo aver
 messo in coda tutte le richieste. In questo caso il chiamante può richiedere
-la notifica del completamento di tutte le richieste, settando l'argomento
+la notifica del completamento di tutte le richieste, impostando l'argomento
 \param{sig} in maniera analoga a come si fa per il campo \var{aio\_sigevent}
 di \type{aiocb}.
 
@@ -782,7 +783,7 @@ sono:
   
   \bodydesc{Le funzioni restituiscono il numero di byte letti o scritti in
     caso di successo, e -1 in caso di errore, nel qual caso \var{errno} viene
-    settata ai valori:
+    impostata ai valori:
   \begin{errlist}
   \item[\macro{EBADF}] si è specificato un file descriptor sbagliato.
   \item[\macro{EINVAL}] si è specificato un valore non valido per uno degli
@@ -872,21 +873,21 @@ memoria un file; il suo prototipo 
   
   \bodydesc{La funzione restituisce il puntatore alla zona di memoria mappata
     in caso di successo, e \macro{MAP\_FAILED} (-1) in caso di errore, nel
-    qual caso \var{errno} viene settata ai valori:
+    qual caso \var{errno} viene impostata ai valori:
     \begin{errlist}
     \item[\macro{EBADF}] Il file descriptor non è valido, e non si è usato
       \macro{MAP\_ANONYMOUS}.
     \item[\macro{EACCES}] Il file descriptor non si riferisce ad un file
-      normale, o si è richiesto \macro{MAP\_PRIVATE} ma \param{fd} non è
-      aperto in lettura, o si è richiesto \macro{MAP\_SHARED} e settato
+      regolare, o si è richiesto \macro{MAP\_PRIVATE} ma \param{fd} non è
+      aperto in lettura, o si è richiesto \macro{MAP\_SHARED} e impostato
       \macro{PROT\_WRITE} ed \param{fd} non è aperto in lettura/scrittura, o
-      si è settato \macro{PROT\_WRITE} ed \param{fd} è in
+      si è impostato \macro{PROT\_WRITE} ed \param{fd} è in
       \textit{append-only}.
     \item[\macro{EINVAL}] I valori di \param{start}, \param{length} o
       \param{offset} non sono validi (o troppo grandi o non allineati sulla
       dimensione delle pagine).
-    \item[\macro{ETXTBSY}] Si è settato \macro{MAP\_DENYWRITE} ma \param{fd} è
-      aperto in scrittura.
+    \item[\macro{ETXTBSY}] Si è impostato \macro{MAP\_DENYWRITE} ma \param{fd}
+      è aperto in scrittura.
     \item[\macro{EAGAIN}] Il file è bloccato, o si è bloccata troppa memoria.
     \item[\macro{ENOMEM}] Non c'è memoria o si è superato il limite sul numero
       di mappature possibili.
@@ -948,7 +949,7 @@ come maschera binaria ottenuta dall'OR di uno o pi
     \hline
     \macro{MAP\_FIXED}     & Non permette di restituire un indirizzo diverso
                              da \param{start}, se questo non può essere usato
-                             \func{mmap} fallisce. Se si setta questo flag il
+                             \func{mmap} fallisce. Se si imposta questo flag il
                              valore di \param{start} deve essere allineato
                              alle dimensioni di una pagina. \\
     \macro{MAP\_SHARED}    & I cambiamenti sulla memoria mappata vengono
@@ -980,7 +981,7 @@ come maschera binaria ottenuta dall'OR di uno o pi
                              questo caso dopo una scrittura, se non c'è più
                              memoria disponibile, si ha l'emissione di
                              un \macro{SIGSEGV}. \\
-    \macro{MAP\_LOCKED}    & Se settato impedisce lo swapping delle pagine
+    \macro{MAP\_LOCKED}    & Se impostato impedisce lo swapping delle pagine
                              mappate. \\
     \macro{MAP\_GROWSDOWN} & Usato per gli stack. Indica 
                              che la mappatura deve essere effettuata con gli
@@ -1067,7 +1068,7 @@ contenuto della memoria mappata con il file su disco; il suo prototipo 
   Sincronizza i contenuti di una sezione di un file mappato in memoria.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene settata ai valori:
+    errore nel qual caso \var{errno} viene impostata ai valori:
     \begin{errlist}
     \item[\macro{EINVAL}] O \param{start} non è multiplo di \macro{PAGESIZE},
     o si è specificato un valore non valido per \param{flags}.
@@ -1123,7 +1124,7 @@ mappatura della memoria usando la funzione \func{munmap}, il suo prototipo 
   Rilascia la mappatura sulla sezione di memoria specificata.
 
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene settata ai valori:
+    errore nel qual caso \var{errno} viene impostata ai valori:
     \begin{errlist}
     \item[\macro{EINVAL}] L'intervallo specificato non ricade in una zona
       precedentemente mappata.
@@ -1179,9 +1180,23 @@ esiste una condizione di blocco per l'accesso ai file.
 \subsection{Il \textit{mandatory locking}}
 \label{sec:file_mand_locking}
 
-Il \textit{mandatory locking} è una opzione introdotta inizialmente in SVr4, 
-
-
+Il \textit{mandatory locking} è una opzione introdotta inizialmente in SVr4,
+per introdurre un file locking che come dice il nome, fosse effettivo
+indipendentemente dai controlli eseguiti da un processo. Con il
+\textit{mandatory locking} infatti è possibile far eseguire il blocco del file
+direttamente al sistema, così che anche qualora non si predisponessero le
+opportune verifiche nei processi, questo verrebbe comunque rispettato.
+
+Per poter utilizzare il \textit{mandatory locking} è stato introdotto un
+utilizzo particolare del bit \acr{suid}. Se si ricorda quanto esposto in
+\secref{sec:file_suid_sgid}), esso viene di norma utlizzato per cambiare
+l'\textit{effective user ID} con cui viene eseguito un programma, ed è
+pertanto sempre associato alla presenza del permesso di esecuzione. Impostando
+questo bit su un file senza permesso di esecuzione in un sistema che supporta
+il \textit{mandatory locking}, fa sì che quest'ultimo venga attivato per il
+file in questione. In questo modo una combinaizone dei permessi
+originariamente non contemplata, in quanto senza significato, diventa
+l'indicazione della presenza o meno del \textit{mandatory locking}.
 
 
 
index c389a7de87d5ac351a71c5d31fb5cb79e8b9c501..d1d8606e0b6daa1513fd28cda53ddafa996b6c99 100644 (file)
@@ -60,7 +60,7 @@ principali, come risultano dalla man page, sono le seguenti:
   dandogli nome \var{newpath}.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 in
-    caso di errore. La variabile \var{errno} viene settata
+    caso di errore. La variabile \var{errno} viene impostata
     opportunamente, i principali codici di errore sono:
   \begin{errlist}
   \item[\macro{EXDEV}] \var{oldpath} e \var{newpath} non sono sullo
@@ -119,7 +119,7 @@ suo prototipo 
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
     errore, nel qual caso il file non viene toccato. La variabile
-    \var{errno} viene settata secondo i seguenti codici di errore:
+    \var{errno} viene impostata secondo i seguenti codici di errore:
   \begin{errlist}
   \item[\macro{EISDIR}] \var{pathname} si riferisce ad una directory
     (valore specifico ritornato da Linux che non consente l'uso di
@@ -138,9 +138,9 @@ Per cancellare una voce in una directory 
 scrittura su di essa (dato che si va a rimuovere una voce dal suo contenuto) e
 il diritto di esecuzione sulla directory che la contiene (torneremo in
 dettaglio sui permessi e gli attributi in \secref{sec:file_access_control}),
-se inoltre lo \textit{sticky} bit è settato occorrerà anche essere proprietari
-del file o proprietari della directory (o root, per cui nessuna delle
-restrizioni è applicata).
+se inoltre lo \textit{sticky} bit è impostato occorrerà anche essere
+proprietari del file o proprietari della directory (o root, per cui nessuna
+delle restrizioni è applicata).
 
 Una delle caratteristiche di queste funzioni è che la creazione/rimozione
 del nome dalla directory e l'incremento/decremento del numero di riferimenti
@@ -198,7 +198,7 @@ nello stesso filesystem) si usa invece la funzione \func{rename},\footnote{la
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
     errore, nel qual caso il file non viene toccato. La variabile
-    \var{errno} viene settata secondo i seguenti codici di errore:
+    \var{errno} viene impostata secondo i seguenti codici di errore:
   \begin{errlist} 
   \item[\macro{EISDIR}] \var{newpath} è una directory mentre \var{oldpath} non
     è una directory.
@@ -362,7 +362,7 @@ la funzione \func{readlink}, il cui prototipo 
   
   \bodydesc{La funzione restituisce il numero di caratteri letti dentro
     \var{buff} o -1 per un errore, nel qual caso la variabile
-    \var{errno} viene settata a:
+    \var{errno} viene impostata a:
   \begin{errlist}
   \item[\macro{EINVAL}] \param{path} non è un link simbolico o \param{size}
     non è positiva.
@@ -406,7 +406,7 @@ Per questo motivo il kernel e le librerie prevedono che nella risoluzione di
 un pathname possano essere seguiti un numero limitato di link simbolici, il
 cui valore limite è specificato dalla costante \macro{MAXSYMLINKS}. Qualora
 questo limite venga superato viene generato un errore ed \var{errno} viene
-settata al valore \macro{ELOOP}.
+impostata al valore \macro{ELOOP}.
 
 Un punto da tenere sempre presente è che, come abbiamo accennato, un link
 simbolico può fare riferimento anche ad un file che non esiste; ad esempio
@@ -465,7 +465,7 @@ standard \file{.} e \file{..}). I permessi di accesso (vedi la trattazione in
 \secref{sec:file_access_control}) specificati da \var{mode} (i cui possibili
 valori sono riportati in \tabref{tab:file_permission_const}) sono modificati
 dalla maschera di creazione dei file (si veda \secref{sec:file_umask}).  La
-titolarità della nuova directory è settata secondo quanto riportato in
+titolarità della nuova directory è impostata secondo quanto riportato in
 \secref{sec:file_ownership}.
 
 La seconda funzione serve ad eliminare una directory già vuota (la directory
@@ -480,8 +480,8 @@ suo prototipo 
   \begin{errlist}
   \item[\macro{EPERM}] Il filesystem non supporta la cancellazione di
     directory, oppure la directory che contiene \var{dirname} ha lo sticky bit
-    settato e l'\textit{effective user id} del processo non corrisponde al
-    proprietario della directory. 
+    impostato e l'\textit{effective user id} del processo non corrisponde al
+    proprietario della directory.
   \item[\macro{EACCESS}] Non c'è il permesso di scrittura per la directory che
     contiene la directory che si vuole cancellare, o non c'è il permesso di
     attraversare (esecuzione) una delle directory specificate in
@@ -512,7 +512,7 @@ degli altri tipi di file speciali, come i file di dispositivo e le fifo (i
 socket sono un caso a parte, che vedremo in \capref{cha:socket_intro}).
 
 La manipolazione delle caratteristiche di questi file e la loro cancellazione
-può essere effettuata con le stesse funzioni che operano sui file normali; ma
+può essere effettuata con le stesse funzioni che operano sui file regolari; ma
 quando li si devono creare sono necessarie delle funzioni apposite. La prima
 di queste funzioni è \func{mknod}, il suo prototipo è:
 \begin{functions}
@@ -539,18 +539,18 @@ di queste funzioni 
 \end{functions}
 
 La funzione permette di creare un file speciale, ma si può usare anche per
-creare file normali e fifo; l'argomento \param{mode} specifica il tipo di file
-che si vuole creare ed i relativi permessi, secondo i valori riportati in
+creare file regolari e fifo; l'argomento \param{mode} specifica il tipo di
+file che si vuole creare ed i relativi permessi, secondo i valori riportati in
 \tabref{tab:file_mode_flags}, che vanno combinati con un OR binario. I
 permessi sono comunque modificati nella maniera usuale dal valore di
 \var{umask} (si veda \secref{sec:file_umask}).
 
 Per il tipo di file può essere specificato solo uno fra: \macro{S\_IFREG} per
-un file normale (che sarà creato vuoto), \macro{S\_IFBLK} per un device a
+un file regolare (che sarà creato vuoto), \macro{S\_IFBLK} per un device a
 blocchi, \macro{S\_IFCHR} per un device a caratteri e \macro{S\_IFIFO} per una
 fifo. Un valore diverso comporterà l'errore \macro{EINVAL}. Qualora si sia
 specificato in \param{mode} un file di dispositivo, il valore di \param{dev}
-viene usato per indicare a quale dispositivo si fa riferimento. 
+viene usato per indicare a quale dispositivo si fa riferimento.
 
 Solo l'amministratore può creare un file di dispositivo o un file regolare
 usando questa funzione; ma in Linux\footnote{la funzione non è prevista dallo
@@ -612,7 +612,7 @@ directory corrente o directory di lavoro (\textit{current working directory})
 che è quella a cui si fa riferimento quando un filename è espresso in forma
 relativa, dove il ``relativa'' fa riferimento appunto a questa directory.
 
-Quando un utente effettua il login questa directory viene settata alla
+Quando un utente effettua il login questa directory viene impostata alla
 \textit{home directory} del suo account. Il comando \cmd{cd} della shell
 consente di cambiarla a piacere, spostandosi da una directory ad un'altra, il
 comando \cmd{pwd} la stampa sul terminale.  Siccome la directory corrente
@@ -630,7 +630,7 @@ apposita funzione di libreria,  \func{getcwd}, il cui prototipo 
   
   \bodydesc{La funzione restituisce il puntatore \var{buffer} se riesce,
     \macro{NULL} se fallisce, in quest'ultimo caso la variabile
-    \var{errno} è settata con i seguenti codici di errore:
+    \var{errno} è impostata con i seguenti codici di errore:
   \begin{errlist}
   \item[\macro{EINVAL}] L'argomento \var{size} è zero e \var{buffer} non
     è nullo.
@@ -676,7 +676,7 @@ appunto per \textit{change directory}, il suo prototipo 
   Cambia la directory di lavoro corrente in \param{pathname}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 per un errore,
-    nel qual caso \var{errno} viene settata a:
+    nel qual caso \var{errno} viene impostata a:
   \begin{errlist}
   \item[\macro{ENOTDIR}] Non si è specificata una directory.
   \item[\macro{EACCESS}] Manca il permesso di ricerca su uno dei componenti di
@@ -696,7 +696,7 @@ usa \func{fchdir}, il cui prototipo 
   pathname.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
-    errore, in caso di errore \var{errno} viene settata ai valori
+    errore, in caso di errore \var{errno} viene impostata ai valori
     \macro{EBADF} o \macro{EACCES}.}
 \end{prototype}
 \noindent anche in questo caso \param{fd} deve essere un file descriptor
@@ -745,7 +745,7 @@ esplicitamente, il suo prototipo 
   non esistente al momento dell'invocazione.
 
   \bodydesc{La funzione ritorna il puntatore alla stringa con il nome o
-  \macro{NULL} in caso di fallimento, \var{errno} viene settata a
+  \macro{NULL} in caso di fallimento, \var{errno} viene impostata a
   \macro{ENOMEM} qualora fallisca l'allocazione della stringa.}
 \end{prototype}
 
@@ -780,7 +780,7 @@ POSIX definisce la funzione \func{tempfile}, il cui prototipo 
   
   \bodydesc{La funzione ritorna il puntatore allo stream associato al file
     temporaneo in caso di successo e \macro{NULL} in caso di errore, nel qual
-    caso \var{errno} viene settata a
+    caso \var{errno} viene impostata a
     \begin{errlist}
     \item[\macro{EINTR}] La funzione è stata interrotta da un segnale.
     \item[\macro{EEXIST}] Non è stato possibile generare un nome univoco.
@@ -808,7 +808,7 @@ il suo prototipo 
   
   \bodydesc{La funzione ritorna il puntatore \param{template} in caso di
     successo e \macro{NULL} in caso di errore, nel qual caso \var{errno} viene
-    settata a:
+    impostata a:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \end{errlist}}
@@ -833,7 +833,7 @@ prototipo 
   finali di \param{template}.
   
   \bodydesc{La funzione ritorna il file descriptor in caso successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene settata a:
+    -1 in caso di errore, nel qual caso \var{errno} viene impostata a:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \item[\macro{EEXIST}] non è riuscita a creare un file temporano, il
@@ -844,7 +844,7 @@ prototipo 
 essere una stringa costante. La funzione apre un file in lettura/scrittura con
 la funzione \func{open}, usando l'opzione \macro{O\_EXCL} (si veda
 \secref{sec:file_open}), in questo modo al ritorno della funzione si ha la
-certezza di essere i soli utenti del file. I permessi sono settati al valore
+certezza di essere i soli utenti del file. I permessi sono impostati al valore
 \code{0600}\footnote{questo è vero a partire dalle \acr{glibc} 2.0.7, le
   versioni precedenti delle \acr{glibc} e le vecchie \acr{libc5} e \acr{libc4}
   usavano il valore \code{0666} che permetteva a chiunque di leggere i
@@ -859,7 +859,7 @@ In OpenBSD 
   
   \bodydesc{La funzione ritorna il puntatore al nome della directory in caso
     successo e \macro{NULL} in caso di errore, nel qual caso \var{errno} viene
-    settata a:
+    impostata a:
     \begin{errlist}
     \item[\macro{EINVAL}] \param{template} non termina con \code{XXXXXX}.
     \end{errlist}
@@ -1060,7 +1060,7 @@ poi si effettua il confronto con la combinazione di tipi scelta.
 \label{sec:file_file_size}
 
 Il membro \var{st\_size} contiene la dimensione del file in byte (se il file è
-un file normale, nel caso di un link simbolico la dimensione è quella del
+un file regolare, nel caso di un link simbolico la dimensione è quella del
 pathname che contiene).
 
 Il campo \var{st\_blocks} definisce la lunghezza del file in blocchi di 512
@@ -1101,9 +1101,9 @@ dimensione si possono usare le due funzioni \func{truncate} e
   eccetto che si usa con un file aperto, specificato tramite il suo file
   descriptor \var{fd}.
   
-  \bodydesc{Le funzioni restituiscono zero in caso di successo e -1 per
-    un errore, nel qual caso \var{errno} viene settato opportunamente;
-    per \func{ftruncate} si hanno i valori:
+  \bodydesc{Le funzioni restituiscono zero in caso di successo e -1 per un
+    errore, nel qual caso \var{errno} viene impostata opportunamente; per
+    \func{ftruncate} si hanno i valori:
   \begin{errlist}
   \item[\macro{EBADF}] \var{fd}  non è un file descriptor.
   \item[\macro{EINVAL}] \var{fd} è un riferimento ad un socket, non a un file
@@ -1286,7 +1286,7 @@ Cambia i tempi di ultimo accesso e modifica dell'inode specificato da
 \param{times}. Se questa è \macro{NULL} allora viene usato il tempo corrente.
 
 \bodydesc{La funzione restituisce zero in caso di successo e -1 in caso
-  di errore, nel qual caso \var{errno} è settata opportunamente.
+  di errore, nel qual caso \var{errno} è impostata opportunamente.
 \begin{errlist}
 \item[\macro{EACCESS}] non si ha il permesso di scrittura sul file.
 \item[\macro{ENOENT}] \param{filename} non esiste.
@@ -1302,10 +1302,10 @@ struct utimbuf {
 \end{lstlisting}
 
 L'effetto della funzione e i privilegi necessari per eseguirla dipendono da
-cosa è l'argomento \param{times}; se è \macro{NULL} la funzione setta il tempo
-corrente ed è sufficiente avere accesso in scrittura al file; se invece si è
-specificato un valore la funzione avrà successo solo se si è proprietari del
-file (o si hanno i privilegi di amministratore).
+cosa è l'argomento \param{times}; se è \macro{NULL} la funzione imposta il
+tempo corrente ed è sufficiente avere accesso in scrittura al file; se invece
+si è specificato un valore la funzione avrà successo solo se si è proprietari
+del file (o si hanno i privilegi di amministratore).
 
 Si tenga presente che non è comunque possibile specificare il tempo di
 cambiamento di stato del file, che viene comunque cambiato dal kernel tutte le
@@ -1461,7 +1461,7 @@ fa riferimento; per questo in genere il comando \cmd{ls} riporta per un link
 simbolico tutti i permessi come concessi; utente e gruppo a cui esso
 appartiene vengono pure ignorati quando il link viene risolto, vengono
 controllati solo quando viene richiesta la rimozione del link e quest'ultimo è
-in una directory con lo \textsl{sticky bit} settato (si veda
+in una directory con lo \textsl{sticky bit} impostato (si veda
 \secref{sec:file_sticky}).
 
 La procedura con cui il kernel stabilisce se un processo possiede un certo
@@ -1496,18 +1496,18 @@ di accesso sono i seguenti:
   \item se il relativo\footnote{per relativo si intende il bit di user-read se
       il processo vuole accedere in scrittura, quello di user-write per
       l'accesso in scrittura, etc.} bit dei permessi d'accesso dell'utente è
-    settato, l'accesso è consentito
+    impostato, l'accesso è consentito
   \item altrimenti l'accesso è negato
   \end{itemize*}
 \item Se l'\textit{effective group id} del processo o uno dei
   \textit{supplementary group id} dei processi corrispondono al \acr{gid} del
   file allora:
   \begin{itemize*}
-  \item se il bit dei permessi d'accesso del gruppo è settato, l'accesso è
+  \item se il bit dei permessi d'accesso del gruppo è impostato, l'accesso è
     consentito, 
   \item altrimenti l'accesso è negato
   \end{itemize*}
-\item se il bit dei permessi d'accesso per tutti gli altri è settato,
+\item se il bit dei permessi d'accesso per tutti gli altri è impostato,
   l'accesso è consentito, altrimenti l'accesso è negato.
 \end{enumerate}
 
@@ -1531,17 +1531,17 @@ sono i bit detti \acr{suid} (da \textit{set-user-ID bit}) e \acr{sgid} (da
 \macro{S\_ISUID} e \macro{S\_ISGID}.
 
 Come spiegato in dettaglio in \secref{sec:proc_exec}, quando si lancia un
-programma il comportamento normale del kernel è quello di settare
+programma il comportamento normale del kernel è quello di impostare
 l'\textit{effective user id} e l'\textit{effective group id} del nuovo
 processo all'\acr{uid} e al \acr{gid} del processo corrente, che normalmente
 corrispondono dell'utente con cui si è entrati nel sistema.
 
 Se però il file del programma\footnote{per motivi di sicurezza il kernel
   ignora i bit \acr{suid} e \acr{sgid} per gli script eseguibili.} (che
-ovviamente deve essere eseguibile) ha il bit \acr{suid} settato, il kernel
+ovviamente deve essere eseguibile) ha il bit \acr{suid} impostato, il kernel
 assegnerà come \textit{effective user id} al nuovo processo l'\acr{uid} del
 proprietario del file al posto dell'\acr{uid} del processo originario.  Avere
-il bit \acr{sgid} settato ha lo stesso effetto sull'\textit{effective group
+il bit \acr{sgid} impostato ha lo stesso effetto sull'\textit{effective group
   id} del processo.
 
 I bit \acr{suid} e \acr{sgid} vengono usati per permettere agli utenti normali
@@ -1550,7 +1550,7 @@ il comando \cmd{passwd} che ha la necessit
 password, quest'ultimo ovviamente può essere scritto solo dall'amministratore,
 ma non è necessario chiamare l'amministratore per cambiare la propria
 password. Infatti il comando \cmd{passwd} appartiene a root ma ha il bit
-\acr{suid} settato per cui quando viene lanciato da un utente normale parte
+\acr{suid} impostato per cui quando viene lanciato da un utente normale parte
 con i privilegi di root.
 
 Chiaramente avere un processo che ha privilegi superiori a quelli che avrebbe
@@ -1562,7 +1562,7 @@ dettaglio in \secref{sec:proc_perms}).
 La presenza dei bit \acr{suid} e \acr{sgid} su un file può essere rilevata con
 il comando \cmd{ls -l}, che visualizza una lettera \cmd{s} al posto della
 \cmd{x} in corrispondenza dei permessi di utente o gruppo. La stessa lettera
-\cmd{s} può essere usata nel comando \cmd{chmod} per settare questi bit.
+\cmd{s} può essere usata nel comando \cmd{chmod} per impostare questi bit.
 Infine questi bit possono essere controllati all'interno di \var{st\_mode} con
 l'uso delle due costanti \macro{S\_ISUID} e \macro{S\_IGID}, i cui valori sono
 riportati in \tabref{tab:file_mode_flags}.
@@ -1574,7 +1574,7 @@ veda \secref{sec:file_ownership} per una spiegazione dettagliata al
 proposito).
 
 Infine Linux utilizza il bit \acr{sgid} per una ulteriore estensione mutuata
-da SVr4. Il caso in cui un file ha il bit \acr{sgid} settato senza che lo sia
+da SVr4. Il caso in cui un file ha il bit \acr{sgid} impostare senza che lo sia
 anche il corrispondente bit di esecuzione viene utilizzato per attivare per
 quel file il \textit{mandatory locking} (argomento che affronteremo in
 dettagliopiù avanti in \secref{sec:file_mand_locking}).
@@ -1587,7 +1587,7 @@ L'ultimo dei bit rimanenti, identificato dalla costante \macro{S\_ISVTX}, 
 parte un rimasuglio delle origini dei sistemi Unix. A quell'epoca infatti la
 memoria virtuale e l'accesso ai files erano molto meno sofisticati e per
 ottenere la massima velocità possibile per i programmi usati più comunemente
-si poteva settare questo bit.
+si poteva impostare questo bit.
 
 L'effetto di questo bit era che il segmento di testo del programma (si veda
 \secref{sec:proc_mem_layout} per i dettagli) veniva scritto nella swap la
@@ -1599,16 +1599,16 @@ tempo di caricamento rispetto alla ricerca del file su disco. Lo
 \cmd{x} nei permessi per gli altri.
 
 Ovviamente per evitare che gli utenti potessero intasare la swap solo
-l'amministratore era in grado di settare questo bit, che venne chiamato anche
-con il nome di \textit{saved text bit}, da cui deriva quello della costante.
-Le attuali implementazioni di memoria virtuale e filesystem rendono
+l'amministratore era in grado di impostare questo bit, che venne chiamato
+anche con il nome di \textit{saved text bit}, da cui deriva quello della
+costante.  Le attuali implementazioni di memoria virtuale e filesystem rendono
 sostanzialmente inutile questo procedimento.
 
 Benché ormai non venga più utilizzato per i file, lo \textsl{sticky bit} ha
 invece assunto un uso importante per le directory;\footnote{lo \textsl{sticky
     bit} per le directory è un'estensione non definita nello standard POSIX,
   Linux però la supporta, così come BSD e SVR4.} in questo caso se il bit è
-settato un file potrà essere rimosso dalla directory soltanto se l'utente ha
+impostato un file potrà essere rimosso dalla directory soltanto se l'utente ha
 il permesso di scrittura su di essa ed inoltre è vera una delle seguenti
 condizioni:
 \begin{itemize*}
@@ -1616,8 +1616,8 @@ condizioni:
 \item l'utente è proprietario della directory
 \item l'utente è l'amministratore 
 \end{itemize*}
-un classico esempio di directory che ha questo bit settato è \file{/tmp}, i
-permessi infatti di solito sono settati come:
+un classico esempio di directory che ha questo bit impostato è \file{/tmp}, i
+permessi infatti di solito sono impostati come:
 \begin{verbatim}
 $ ls -ld /tmp
 drwxrwxrwt    6 root     root         1024 Aug 10 01:03 /tmp
@@ -1652,14 +1652,14 @@ in genere BSD usa sempre la seconda possibilit
 semantica BSD. Linux invece segue quella che viene chiamata semantica SVr4; di
 norma cioè il nuovo file viene creato, seguendo la prima opzione, con il
 \acr{gid} del processo, se però la directory in cui viene creato il file ha il
-bit \acr{sgid} settato allora viene usata la seconda opzione.
+bit \acr{sgid} impostato allora viene usata la seconda opzione.
 
 Usare la semantica BSD ha il vantaggio che il \acr{gid} viene sempre
 automaticamente propagato, restando coerente a quello della directory di
 partenza, in tutte le sottodirectory. La semantica SVr4 offre la possibilità
 di scegliere, ma per ottenere lo stesso risultato di coerenza che si ha con
 BSD necessita che per le nuove directory venga anche propagato anche il bit
-\acr{sgid}. Questo è il comportamento di default di \func{mkdir}, ed è in
+\acr{sgid}. Questo è il comportamento predefinito di \func{mkdir}, ed è in
 questo modo ad esempio che Debian assicura che le sottodirectory create nelle
 home di un utente restino sempre con il \acr{gid} del gruppo primario dello
 stesso.
@@ -1683,7 +1683,7 @@ Verifica i permessi di accesso, indicati da \var{mode}, per il file indicato
 da \var{pathname}.
   
 \bodydesc{La funzione ritorna 0 se l'accesso è consentito, -1 altrimenti; in
-  quest'ultimo caso la variabile \var{errno} viene settata secondo i codici di
+  quest'ultimo caso la variabile \var{errno} viene impostata secondo i codici di
   errore: \macro{EACCES}, \macro{EROFS}, \macro{EFAULT}, \macro{EINVAL},
   \macro{ENAMETOOLONG}, \macro{ENOENT}, \macro{ENOTDIR}, \macro{ELOOP},
   \macro{EIO}.}
@@ -1802,7 +1802,7 @@ alcune limitazioni, provviste per motivi di sicurezza. Questo significa che
 anche se si è proprietari del file non tutte le operazioni sono permesse, in
 particolare:
 \begin{enumerate}
-\item siccome solo l'amministratore può settare lo \textit{sticky bit}, se
+\item siccome solo l'amministratore può impostare lo \textit{sticky bit}, se
   l'\textit{effective user id} del processo non è zero esso viene
   automaticamente cancellato (senza notifica di errore) qualora sia stato
   indicato in \var{mode}.
@@ -1829,12 +1829,12 @@ privilegio.
 \label{sec:file_umask}
 
 Oltre che dai valori indicati in sede di creazione, i permessi assegnati ai
-nuovi file sono controllati anche da una maschera di bit settata con la
+nuovi file sono controllati anche da una maschera di bit impostata con la
 funzione \func{umask}, il cui prototipo è:
 \begin{prototype}{stat.h}
 {mode\_t umask(mode\_t mask)}
 
-  Setta la maschera dei permessi dei bit al valore specificato da \var{mask}
+  Imposta la maschera dei permessi dei bit al valore specificato da \var{mask}
   (di cui vengono presi solo i 9 bit meno significativi).
   
   \bodydesc{La funzione ritorna il precedente valore della maschera. È una
@@ -1848,12 +1848,12 @@ permessi possano essere assegnati ai nuovi file in sede di creazione. I bit
 indicati nella maschera vengono infatti esclusi quando un nuovo file viene
 creato.
 
-In genere questa maschera serve per impostare un default che escluda alcuni
-permessi (usualmente quello di scrittura per il gruppo e gli altri,
-corrispondente ad un valore di $022$). Essa è utile perché le routine
-dell'interfaccia ANSI C degli stream non prevedono l'esistenza dei permessi, e
-pertanto tutti i nuovi file vengono sempre creati con un default di $666$
-(cioè permessi di lettura e scrittura per tutti, si veda
+In genere questa maschera serve per impostare un valore predefinito dei
+permessi che ne escluda alcuni (usualmente quello di scrittura per il gruppo e
+gli altri, corrispondente ad un valore di $022$). Essa è utile perché le
+routine dell'interfaccia ANSI C degli stream non prevedono l'esistenza dei
+permessi, e pertanto tutti i nuovi file vengono sempre creati con un valore di
+$666$ (cioè permessi di lettura e scrittura per tutti, si veda
 \tabref{tab:file_permission_const} per un confronto); in questo modo è
 possibile cancellare automaticamente i permessi non voluti, senza doverlo fare
 esplicitamente.
@@ -1882,7 +1882,7 @@ sono tre e i loro prototipi sono i seguenti:
   specificati dalle variabili \var{owner} e \var{group}. 
   
   \bodydesc{Le funzioni restituiscono zero in caso di successo e -1 per
-    un errore, in caso di errore \var{errno} viene settato ai valori:
+    un errore, in caso di errore \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EPERM}] L'\textit{effective user id} non corrisponde a quello
     del proprietario del file o non è zero, o utente e gruppo non sono validi
@@ -1947,7 +1947,7 @@ radice con la funzione \func{chroot}, il cui prototipo 
   \param{path}.
   
 \bodydesc{La funzione restituisce zero in caso di successo e -1 per
-    un errore, in caso di errore \var{errno} viene settato ai valori:
+    un errore, in caso di errore \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EPERM}] L'\textit{effective user id} non è zero.
   \end{errlist}
index 0a7bb94adc735105e3e06f5d715c6d464b8d1287..a55e5ac9c313e546e36704882afdea65e496d04d 100644 (file)
@@ -136,7 +136,7 @@ dati) in base al loro contenuto, o tipo di accesso.
     \multicolumn{2}{|c|}{\textbf{Tipo di file}} & \textbf{Descrizione} \\
     \hline
     \hline
-      \textit{regular file} & \textsl{file normale} &
+      \textit{regular file} & \textsl{file regolare} &
       un file che contiene dei dati (l'accezione normale di file) \\
       \textit{directory} & \textsl{cartella o direttorio} &
       un file che contiene una lista di nomi associati a degli \textit{inodes}
@@ -547,10 +547,10 @@ ricordare sempre che:
   fisici che contengono i dati e così via; le informazioni che la funzione
   \func{stat} fornisce provengono dall'\textit{inode}; dentro una directory si
   troverà solo il nome del file e il numero dell'\textit{inode} ad esso
-  associato, cioè quella che da qui in poi chiameremo una \textsl{voce}
-  (traduzione approssimata dell'inglese \textit{directory entry}, che non
-  useremo anche per evitare confusione con le \textit{dentry} del kernel di
-  cui si parlava in \secref{sec:file_vfs}).
+  associato, cioè quella che da qui in poi chiameremo una \textsl{voce} (come
+  traduzione dell'inglese \textit{directory entry}, che non useremo anche per
+  evitare confusione con le \textit{dentry} del kernel di cui si parlava in
+  \secref{sec:file_vfs}).
 
 \item Come mostrato in \curfig\ si possono avere più voci che puntano allo
   stesso \textit{inode}. Ogni \textit{inode} ha un contatore che contiene il
@@ -610,7 +610,7 @@ Oltre alle caratteristiche standard, \acr{ext2} fornisce alcune estensioni che
 non sono presenti sugli altri filesystem Unix. Le principali sono le seguenti:
 \begin{itemize}
 \item i \textit{file attributes} consentono di modificare il comportamento del
-  kernel quando agisce su gruppi di file. Possono essere settati su file e
+  kernel quando agisce su gruppi di file. Possono essere impostati su file e
   directory e in quest'ultimo caso i nuovi file creati nella directory
   ereditano i suoi attributi.
 \item sono supportate entrambe le semantiche di BSD e SVr4 come opzioni di
@@ -618,7 +618,7 @@ non sono presenti sugli altri filesystem Unix. Le principali sono le seguenti:
   con lo stesso identificatore di gruppo della directory che li contiene. La
   semantica SVr4 comporta che i file vengono creati con l'identificatore del
   gruppo primario del processo, eccetto il caso in cui la directory ha il bit
-  di \acr{sgid} settato (per una descrizione dettagliata del significato di
+  di \acr{sgid} impostato (per una descrizione dettagliata del significato di
   questi termini si veda \secref{sec:file_access_control}), nel qual caso file
   e subdirectory ereditano sia il \acr{gid} che lo \acr{sgid}.
 \item l'amministratore può scegliere la dimensione dei blocchi del filesystem
index 5f51dad5aed2c6f96fe50f589c1b78ce99374cee..921f082eadda4dcecd37572c7a20baf2b8cd2355 100644 (file)
@@ -163,7 +163,7 @@ standard input siano aperti in modalit
 non fanno riferimento ad un dispositivo interattivo, e che lo standard
 error non sia mai aperto in modalità \textit{fully buffered}.
 
-Linux, come BSD e SVr4, specifica il comportamento di default in maniera
+Linux, come BSD e SVr4, specifica il comportamento predefinito in maniera
 ancora più precisa, e cioè impone che lo standard error sia sempre
 \textit{unbuffered} (in modo che i messaggi di errore siano mostrati il più
 rapidamente possibile) e che standard input e standard output siano aperti in
@@ -224,7 +224,7 @@ Le funzioni che si possono usare per aprire uno stream sono solo tre:
   
   \bodydesc{Le funzioni ritornano un puntatore valido in caso di
     successo e \macro{NULL} in caso di errore, in tal caso \var{errno}
-    viene settata al valore ricevuto dalla funzione sottostante di cui è
+    viene impostata al valore ricevuto dalla funzione sottostante di cui è
     fallita l'esecuzione.
   
     Gli errori pertanto possono essere quelli di \code{malloc} per tutte
@@ -310,12 +310,12 @@ opportune funzioni di conversione in lettura e scrittura.
 Nel caso si usi \func{fdopen} i valori specificati da \param{mode} devono
 essere compatibili con quelli con cui il file descriptor è stato aperto.
 Inoltre i modi \cmd{w} e \cmd{w+} non troncano il file. La posizione nello
-stream viene settata a quella corrente nel file descriptor, e le variabili di
+stream viene impostata a quella corrente nel file descriptor, e le variabili di
 errore e di fine del file (vedi \secref{sec:file_io}) sono cancellate. Il file
 non viene duplicato e verrà chiuso alla chiusura dello stream.
 
 I nuovi file saranno creati secondo quanto visto in
-\secref{sec:file_ownership} ed avranno i permessi di accesso settati al
+\secref{sec:file_ownership} ed avranno i permessi di accesso impostati al
 valore \macro{S\_IRUSR|S\_IWUSR|S\_IRGRP|S\_IWGRP|S\_IROTH|S\_IWOTH}
 (pari a \macro{0666}) modificato secondo il valore di \acr{umask} per il
 processo (si veda \secref{sec:file_umask}).
@@ -344,7 +344,7 @@ Uno stream viene chiuso con la funzione \func{fclose} il cui prototipo 
   Chiude lo stream \param{stream}. 
   
   \bodydesc{Restituisce 0 in caso di successo e \macro{EOF} in caso di errore,
-    nel qual caso setta \var{errno} a \macro{EBADF} se il file descriptor
+    nel qual caso imposta \var{errno} a \macro{EBADF} se il file descriptor
     indicato da \param{stream} non è valido, o uno dei valori specificati
     dalla sottostante funzione che è fallita (\func{close}, \func{write} o
     \func{fflush}).}
@@ -401,14 +401,14 @@ intero (di tipo \ctyp{int}) \macro{EOF}\footnote{la costante deve essere
   valori diversi.}  definito anch'esso nell'header \file{stdlib.h}.
 
 Dato che le funzioni dell'interfaccia degli stream sono funzioni di libreria
-che si appoggiano a delle system call, esse non settano direttamente la
-variabile \var{errno}, che mantiene il valore settato dalla system call che ha
+che si appoggiano a delle system call, esse non impostano direttamente la
+variabile \var{errno}, che mantiene il valore impostato dalla system call che ha
 riportato l'errore. 
 
 Siccome la condizione di end-of-file è anch'essa segnalata come errore, nasce
 il problema di come distinguerla da un errore effettivo; basarsi solo sul
 valore di ritorno della funzione e controllare il valore di \var{errno}
-infatti non basta, dato che quest'ultimo potrebbe essere stato settato in una
+infatti non basta, dato che quest'ultimo potrebbe essere stato impostato in una
 altra occasione, (si veda \secref{sec:sys_errno} per i dettagli del
 funzionamento di \var{errno}).
 
@@ -426,7 +426,7 @@ questi due flag possono essere riletti dalle funzioni:
   Controlla il flag di errore di \param{stream}.
   
   \bodydesc{Entrambe le funzioni ritornano un valore diverso da zero se
-    i relativi flag sono settati.}
+    i relativi flag sono impostati.}
 \end{functions}
 \noindent si tenga presente comunque che la lettura di questi flag segnala
 soltanto che c'è stato un errore, o che si è raggiunta la fine del file in una
@@ -519,7 +519,7 @@ ma il numero di elementi.
 La funzione \func{fread} legge sempre un numero intero di elementi, se
 incontra la fine del file l'oggetto letto parzialmente viene scartato
 (lo stesso avviene in caso di errore). In questo caso la posizione dello
-stream viene settata alla fine del file (e non a quella corrispondente
+stream viene impostata alla fine del file (e non a quella corrispondente
 alla quantità di dati letti).
 
 In caso di errore (o fine del file per \func{fread}) entrambe le
@@ -882,7 +882,7 @@ usati dei \textit{value result argument}, passando dei puntatori anzich
 i valori delle variabili, secondo la tecnica spiegata in
 \secref{sec:proc_var_passing}).
 
-Se si passa alla funzione l'indirizzo ad un puntatore settato a
+Se si passa alla funzione l'indirizzo ad un puntatore impostato a
 \macro{NULL} e \var{*n} è zero, la funzione provvede da sola
 all'allocazione della memoria necessaria a contenere la linea. In tutti
 i casi si ottiene dalla funzione un puntatore all'inizio del testo della
@@ -1288,7 +1288,7 @@ pu
 \begin{functions}
   \headdecl{stdio.h} 
   
-  \funcdecl{int fsetpos(FILE *stream, fpos\_t *pos)} Setta la posizione
+  \funcdecl{int fsetpos(FILE *stream, fpos\_t *pos)} Imposta la posizione
   corrente nello stream \param{stream} al valore specificato da \param{pos}.
   
   \funcdecl{int fgetpos(FILE *stream, fpos\_t *pos)} Scrive la posizione
@@ -1326,7 +1326,7 @@ della funzione 
   Legge il file descriptor sottostante lo stream \param{stream}.
   
   \bodydesc{Restituisce il numero del file descriptor in caso di successo, e
-    -1 qualora \param{stream} non sia valido, nel qual caso setta \var{errno}
+    -1 qualora \param{stream} non sia valido, nel qual caso imposta \var{errno}
   a \macro{EBADF}.}
 \end{prototype}
 \noindent ed in questo modo diventa possibile usare direttamente \func{fcntl}.
@@ -1393,11 +1393,12 @@ suo prototipo 
 \begin{prototype}{stdio.h}{int setvbuf(FILE *stream, char *buf, int mode, 
     size\_t size)}
   
-  Setta la bufferizzazione dello stream \param{stream} nella modalità indicata
-  da \param{mode}, usando \param{buf} come buffer di lunghezza \param{size}.
+  Imposta la bufferizzazione dello stream \param{stream} nella modalità
+  indicata da \param{mode}, usando \param{buf} come buffer di lunghezza
+  \param{size}.
   
   \bodydesc{Restituisce zero in caso di successo, ed un valore qualunque in
-    caso di errore, nel qual caso \var{errno} viene settata opportunamente.}
+    caso di errore, nel qual caso \var{errno} viene impostata opportunamente.}
 \end{prototype}
 
 La funzione permette di controllare tutti gli aspetti della bufferizzazione;
@@ -1438,11 +1439,11 @@ coincidano con quelle su cui viene effettuato l'I/O.
       \hline
     \end{tabular}
   \caption{Valori del parametro \param{mode} di \func{setvbuf} 
-    per il settaggio delle modalità di bufferizzazione.}
+    per l'impostazione delle modalità di bufferizzazione.}
   \label{tab:file_stream_buf_mode}
 \end{table}
 
-Per evitare che \func{setvbuf} setti il buffer basta passare un valore
+Per evitare che \func{setvbuf} imposti il buffer basta passare un valore
 \macro{NULL} per \param{buf} e la funzione ignorerà il parametro \param{size}
 usando il buffer allocato automaticamente dal sistema.  Si potrà comunque
 modificare la modalità di bufferizzazione, passando in \param{mode} uno degli
@@ -1491,7 +1492,7 @@ scelta, si pu
   Forza la scrittura di tutti i dati bufferizzati dello stream \param{stream}.
   
   \bodydesc{Restituisce zero in caso di successo, ed \macro{EOF} in caso di
-    errore, settando \var{errno} a \macro{EBADF} se \param{stream} non è
+    errore, impostando \var{errno} a \macro{EBADF} se \param{stream} non è
     aperto o non è aperto in scrittura, o ad uno degli errori di
     \func{write}.}
 \end{prototype}
@@ -1600,12 +1601,12 @@ prototipo 
   valori \macro{FSETLOCKING\_INTERNAL} o \macro{FSETLOCKING\_BYCALLER}.}
 \end{prototype}
 
-La funzione setta o legge lo stato della modalità di operazione di uno stream
+La funzione imposta o legge lo stato della modalità di operazione di uno stream
 nei confronti del locking a seconda del valore specificato con \param{type},
 che può essere uno dei seguenti:
 \begin{basedescript}{\desclabelwidth{4.0cm}}
 \item[\macro{FSETLOCKING\_INTERNAL}] Lo stream userà da ora in poi il blocco
-  implicito di default.
+  implicito predefinito.
 \item[\macro{FSETLOCKING\_BYCALLER}] Al ritorno della funzione sarà l'utente a
   dover gestire da solo il locking dello stream.
 \item[\macro{FSETLOCKING\_QUERY}] Restituisce lo stato corrente della modalità
index 4ea7eb9895ea8e7787cb56cfe4a251fccf8d60ff..d43019977c905f3e4a6816a6e96c79e5df91f245 100644 (file)
@@ -183,7 +183,7 @@ prototipo 
   specificati da \var{mode}.
   
   \bodydesc{La funzione ritorna il file descriptor in caso di successo e -1 in
-    caso di errore. In questo caso la variabile \var{errno} viene settata ad
+    caso di errore. In questo caso la variabile \var{errno} viene impostata ad
     uno dei valori:
   \begin{errlist}
   \item[\macro{EEXIST}] \var{pathname} esiste e si è specificato
@@ -192,7 +192,7 @@ prototipo 
     l'accesso in scrittura. 
   \item[\macro{ENOTDIR}] si è specificato \macro{O\_DIRECTORY} e \var{pathname}
     non è una directory.
-  \item[\macro{ENXIO}] si sono settati \macro{O\_NOBLOCK} o \macro{O\_WRONLY}
+  \item[\macro{ENXIO}] si sono impostati \macro{O\_NOBLOCK} o \macro{O\_WRONLY}
     ed il file è una fifo che non viene letta da nessun processo o
     \var{pathname} è un file di dispositivo ma il dispositivo è assente.
   \item[\macro{ENODEV}] \var{pathname} si riferisce a un file di dispositivo
@@ -263,7 +263,7 @@ sempre il file descriptor con il valore pi
     \hline
     \hline  % modalità di operazione col file
     \macro{O\_APPEND} & il file viene aperto in append mode. Prima di ciascuna
-    scrittura la posizione corrente viene sempre settata alla fine del
+    scrittura la posizione corrente viene sempre impostata alla fine del
     file. Può causare corruzione del file con NFS se più di un processo scrive
     allo stesso tempo.\footnotemark\\
     \macro{O\_NONBLOCK} & il file viene aperto in modalità non bloccante per
@@ -275,7 +275,7 @@ sempre il file descriptor con il valore pi
     \macro{O\_NDELAY} & in Linux\footnotemark\ è sinonimo di 
     \macro{O\_NONBLOCK}.\\
     \macro{O\_ASYNC} & apre il file per l'I/O in modalità
-    asincrona (vedi \secref{sec:file_asyncronous_io}). Quando è settato viene
+    asincrona (vedi \secref{sec:file_asyncronous_io}). Quando è impostato viene
     generato il segnale \macro{SIGIO} tutte le volte che sono disponibili
     dati in input sul file. \\ 
     \macro{O\_SYNC} & apre il file per l'input/output sincrono, ogni
@@ -320,9 +320,9 @@ input (avr
 
 Il nuovo file descriptor non è condiviso con nessun altro processo, (torneremo
 sulla condivisione dei file, in genere accessibile dopo una \func{fork}, in
-\secref{sec:file_sharing}). Il nuovo file descriptor è settato di default per
-restare aperto attraverso una \func{exec} (come accennato in
-\secref{sec:proc_exec}) e l'offset è settato all'inizio del file.
+\secref{sec:file_sharing}). Il nuovo file descriptor è impostato per restare
+aperto attraverso una \func{exec} (come accennato in \secref{sec:proc_exec}) e
+l'offset è impostato all'inizio del file.
 
 L'argomento \param{mode} specifica i permessi con cui il file viene
 eventualmente creato; i valori possibili sono gli stessi già visti in
@@ -340,7 +340,7 @@ di \curfig).  Essi sono divisi in tre categorie principali:
 \item \textsl{i bit delle modalità di accesso}: specificano con quale modalità
   si accederà al file: i valori possibili sono lettura, scrittura o
   lettura/scrittura.  Uno di questi bit deve essere sempre specificato quando
-  si apre un file.  Vengono settati alla chiamata da \func{open}, e possono
+  si apre un file.  Vengono impostati alla chiamata da \func{open}, e possono
   essere riletti con una \func{fcntl} (fanno parte del \textit{file status
     flag}), ma non possono essere modificati.
 \item \textsl{i bit delle modalità di apertura}: permettono di specificare
@@ -350,7 +350,7 @@ di \curfig).  Essi sono divisi in tre categorie principali:
 \item \textsl{i bit delle modalità di operazione}: permettono di specificare
   alcune caratteristiche del comportamento delle future operazioni sul file
   (come la \func{read} o la \func{write}). Anch'essi fanno parte del
-  \textit{file status flag}. Il loro valore è settato alla chiamata di
+  \textit{file status flag}. Il loro valore è impostato alla chiamata di
   \func{open}, ma possono essere riletti e modificati (insieme alle
   caratteristiche operative che controllano) con una \func{fcntl}.
 \end{itemize}
@@ -386,7 +386,7 @@ descriptor ritorna disponibile; il suo prototipo 
   Chiude il descrittore \var{fd}. 
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
-    ed in questo caso \var{errno} è settata ai valori:
+    ed in questo caso \var{errno} è impostata ai valori:
   \begin{errlist}
     \item[\macro{EBADF}]  \var{fd} non è un descrittore valido.
     \item[\macro{EINTR}] la funzione è stata interrotta da un segnale.
@@ -433,16 +433,16 @@ lettura e scrittura avvengono a partire da questa posizione che viene
 automaticamente spostata in avanti del numero di byte letti o scritti.
 
 In genere (a meno di non avere richiesto la modalità \macro{O\_APPEND}) questa
-posizione viene settata a zero all'apertura del file. È possibile settarla ad
+posizione viene impostata a zero all'apertura del file. È possibile impostarla ad
 un valore qualsiasi con la funzione \func{lseek}, il cui prototipo è:
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{unistd.h}
   \funcdecl{off\_t lseek(int fd, off\_t offset, int whence)}
-  Setta la posizione attuale nel file. 
+  Imposta la posizione attuale nel file. 
   
   \bodydesc{La funzione ritorna valore della posizione corrente in caso di
-    successo e -1 in caso di errore nel qual caso \var{errno} viene settata ad
+    successo e -1 in caso di errore nel qual caso \var{errno} viene impostata ad
     uno dei valori:
   \begin{errlist}
     \item[\macro{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
@@ -451,7 +451,7 @@ un valore qualsiasi con la funzione \func{lseek}, il cui prototipo 
   ed inoltre \macro{EBADF}.}
 \end{functions}
 
-La nuova posizione è settata usando il valore specificato da \param{offset},
+La nuova posizione è impostata usando il valore specificato da \param{offset},
 sommato al riferimento dato da \param{whence}; quest'ultimo può assumere i
 seguenti valori\footnote{per compatibilità con alcune vecchie notazioni
   questi valori possono essere rimpiazzati rispettivamente con 0, 1 e 2 o con
@@ -466,7 +466,7 @@ seguenti valori\footnote{per compatibilit
 \end{basedescript}
 
 Come accennato in \secref{sec:file_file_size} con \func{lseek} è possibile
-settare la posizione corrente anche al di la della fine del file, e alla
+impostare la posizione corrente anche al di la della fine del file, e alla
 successiva scrittura il file sarà esteso. La chiamata non causa nessuna
 attività di input/output, si limita a modificare la posizione corrente nel
 kernel (cioè \var{f\_pos} in \var{file}, vedi \figref{fig:file_proc_file}).
@@ -478,7 +478,7 @@ funzione con \code{lseek(fd, 0, SEEK\_CUR)}.
 Si tenga presente inoltre che usare \macro{SEEK\_END} non assicura affatto che
 successiva scrittura avvenga alla fine del file, infatti se questo è stato
 aperto anche da un altro processo che vi ha scritto, la fine del file può
-essersi spostata, ma noi scriveremo alla posizione settata in precedenza.
+essersi spostata, ma noi scriveremo alla posizione impostata in precedenza.
 (questa è una potenziale sorgente di 
 \textit{race condition}\index{race condition}, vedi \secref{sec:file_atomic}).
 
@@ -503,7 +503,7 @@ utilizzando la funzione \func{read}, il cui prototipo 
   Cerca di leggere \var{count} byte dal file \var{fd} al buffer \var{buf}.
   
   \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene settata ad uno dei
+    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
     valori:
   \begin{errlist}
   \item[\macro{EINTR}] la funzione è stata interrotta da un segnale prima di
@@ -581,7 +581,7 @@ Cerca di leggere \var{count} byte dal file \var{fd}, a partire dalla posizione
 \var{offset}, nel buffer \var{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
-  in caso di errore, nel qual caso \var{errno} viene settata secondo i valori
+  in caso di errore, nel qual caso \var{errno} viene impostata secondo i valori
   già visti per \func{read} e \func{lseek}.}
 \end{prototype}
 \noindent che però diventa accessibile solo con la definizione della macro:
@@ -608,7 +608,7 @@ funzione \func{write}, il cui prototipo 
   Scrive \var{count} byte dal buffer \var{buf} sul file \var{fd}.
   
   \bodydesc{La funzione ritorna il numero di byte scritti in caso di successo
-    e -1 in caso di errore, nel qual caso \var{errno} viene settata ad uno dei
+    e -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
     valori:
   \begin{errlist}
   \item[\macro{EINVAL}] \var{fd} è connesso ad un oggetto che non consente la
@@ -654,7 +654,7 @@ Cerca di scrivere sul file \var{fd}, a partire dalla posizione \var{offset},
 \var{count} byte dal buffer \var{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
-  in caso di errore, nel qual caso \var{errno} viene settata secondo i valori
+  in caso di errore, nel qual caso \var{errno} viene impostata secondo i valori
   già visti per \func{write} e \func{lseek}.}
 \end{prototype}
 \noindent e per essa valgono le stesse considerazioni fatte per \func{pread}.
@@ -705,13 +705,13 @@ stesso file, in particolare occorre tenere presente che:
   scrittura eccede la dimensione corrente del file questo verrà esteso
   automaticamente con l'aggiornamento del campo \var{i\_size} nell'inode.
 \item se un file è in modalità \macro{O\_APPEND} tutte le volte che viene
-  effettuata una scrittura la posizione corrente viene prima settata alla
+  effettuata una scrittura la posizione corrente viene prima impostata alla
   dimensione corrente del file letta dall'inode. Dopo la scrittura il file
   viene automaticamente esteso.
 \item l'effetto di \func{lseek} è solo quello di cambiare il campo \var{f\_pos}
   nella struttura \var{file} della \textit{file table}, non c'è nessuna
   operazione sul file su disco. Quando la si usa per porsi alla fine del file
-  la posizione viene settata leggendo la dimensione corrente dall'inode.
+  la posizione viene impostata leggendo la dimensione corrente dall'inode.
 \end{itemize}
 
 \begin{figure}[htb]
@@ -736,7 +736,7 @@ posizione corrente sul file. Questo ha le conseguenze descritte a suo tempo in
 corrente nel file varierà per entrambi i processi (in quanto verrà modificato
 \var{f\_pos} che è la stesso per entrambi).
 
-Si noti inoltre che anche i flag di stato del file (quelli settati
+Si noti inoltre che anche i flag di stato del file (quelli impostati
 dall'argomento \param{flag} di \func{open}) essendo tenuti nella voce della
 \textit{file table}\footnote{per la precisione nel campo \var{f\_flags} di
   \var{file}.}, vengono in questo caso condivisi. Ai file però sono associati
@@ -765,13 +765,13 @@ utilizzare meccanismi di sincronizzazione pi
 
 Un caso tipico di necessità di accesso condiviso in scrittura è quello in cui
 vari processi devono scrivere alla fine di un file (ad esempio un file di
-log). Come accennato in \secref{sec:file_lseek} settare la posizione alla fine
+log). Come accennato in \secref{sec:file_lseek} impostare la posizione alla fine
 del file e poi scrivere può condurre ad una 
 \textit{race condition}\index{race condition}: 
 infatti può succedere che un secondo processo scriva alla fine
 del file fra la \func{lseek} e la \func{write}; in questo caso, come abbiamo
 appena visto, il file sarà esteso, ma il nostro primo processo avrà ancora la
-posizione corrente settata con la \func{lseek} che non corrisponde più alla
+posizione corrente impostata con la \func{lseek} che non corrisponde più alla
 fine del file, e la successiva \func{write} sovrascriverà i dati del secondo
 processo.
 
@@ -874,7 +874,7 @@ prototipo 
   Crea una copia del file descriptor \param{oldfd}.
   
   \bodydesc{La funzione ritorna il nuovo file descriptor in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene settata ad uno dei
+    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
     valori:
   \begin{errlist}
   \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
@@ -927,7 +927,7 @@ prototipo 
   Rende \param{newfd} una copia del file descriptor \param{oldfd}.
   
   \bodydesc{La funzione ritorna il nuovo file descriptor in caso di successo e
-    -1 in caso di errore, nel qual caso \var{errno} viene settata ad uno dei
+    -1 in caso di errore, nel qual caso \var{errno} viene impostata ad uno dei
     valori:
   \begin{errlist}
   \item[\macro{EBADF}] \param{oldfd} non è un file aperto o \param{newfd} ha un
@@ -970,7 +970,7 @@ file descriptor viene usata la funzione \func{fcntl} il cui prototipo 
   
   \bodydesc{La funzione ha valori di ritorno diversi a seconda
     dell'operazione. In caso di errore il valore di ritorno è -1 e la
-    variabile \var{errno} viene settata ad un opportuno codice, quelli validi
+    variabile \var{errno} viene impostata ad un opportuno codice, quelli validi
     in generale sono:
   \begin{errlist}
   \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
@@ -988,58 +988,60 @@ valori 
   \macro{EINVAL} se \param{arg} è negativo o maggiore del massimo consentito o
   \macro{EMFILE} se il processo ha già raggiunto il massimo numero di
   descrittori consentito.
-\item[\macro{F\_SETFD}] setta il valore del \textit{file descriptor flag}
+\item[\macro{F\_SETFD}] imposta il valore del \textit{file descriptor flag}
   al valore specificato con \param{arg}. Al momento l'unico bit usato è
   quello di \textit{close on exec}, identificato dalla costante
   \macro{FD\_CLOEXEC}.
 \item[\macro{F\_GETFD}] ritorna il valore del \textit{file descriptor flag} di
-  \var{fd}, se \macro{FD\_CLOEXEC} è settato i file descriptor aperti vengono
-  chiusi attraverso una \func{exec} altrimenti (il default) restano aperti.
+  \var{fd}, se \macro{FD\_CLOEXEC} è impostato i file descriptor aperti
+  vengono chiusi attraverso una \func{exec} altrimenti (il comportamento
+  predefinito) restano aperti.
 \item[\macro{F\_GETFL}] ritorna il valore del \textit{file status flag},
-  permette cioè di rileggere quei bit settati da \func{open} all'apertura del
+  permette cioè di rileggere quei bit impostati da \func{open} all'apertura del
   file che vengono memorizzati (quelli riportati nella prima e terza sezione
   di \tabref{tab:file_open_flags}). 
-\item[\macro{F\_SETFL}] setta il \textit{file status flag} al valore
-  specificato da \param{arg}, possono essere settati solo i bit riportati
+\item[\macro{F\_SETFL}] imposta il \textit{file status flag} al valore
+  specificato da \param{arg}, possono essere impostati solo i bit riportati
   nella terza sezione di \tabref{tab:file_open_flags}.\footnote{la man page
-    riporta come settabili solo \macro{O\_APPEND}, \macro{O\_NONBLOCK} e
+    riporta come impostabili solo \macro{O\_APPEND}, \macro{O\_NONBLOCK} e
     \macro{O\_ASYNC}.}
 \item[\macro{F\_GETLK}] se un file lock è attivo restituisce nella struttura
   \param{lock} la struttura \type{flock} che impedisce l'acquisizione del
-  blocco, altrimenti setta il campo \var{l\_type} a \macro{F\_UNLCK} (per i
+  blocco, altrimenti imposta il campo \var{l\_type} a \macro{F\_UNLCK} (per i
   dettagli sul \textit{file locking} vedi \secref{sec:file_locking}).
 \item[\macro{F\_SETLK}] richiede il file lock specificato da \param{lock} se
   \var{l\_type} è \macro{F\_RDLCK} o \macro{F\_WRLLCK} o lo rilascia se
   \var{l\_type} è \macro{F\_UNLCK}. Se il lock è tenuto da qualcun'altro
-  ritorna immediatamente restituendo -1 e setta \var{errno} a \macro{EACCES} o
+  ritorna immediatamente restituendo -1 e imposta \var{errno} a \macro{EACCES} o
   \macro{EAGAIN} (per i dettagli sul \textit{file locking} vedi
   \secref{sec:file_locking}).
 \item[\macro{F\_SETLKW}] identica a \macro{F\_SETLK} eccetto per il fatto che
   la funzione non ritorna subito ma attende che il blocco sia rilasciato. Se
-  l'attesa viene interrotta da un segnale la funzione restituisce -1 e setta
+  l'attesa viene interrotta da un segnale la funzione restituisce -1 e imposta
   \var{errno} a \macro{EINTR} (per i dettagli sul \textit{file locking} vedi
   \secref{sec:file_locking}).
 \item[\macro{F\_GETOWN}] restituisce il \acr{pid} del processo o il process
   group che è preposto alla ricezione dei segnali \macro{SIGIO} e
   \macro{SIGURG} per gli eventi associati al file descriptor \var{fd}. Il
   process group è restituito come valore negativo.
-\item[\macro{F\_SETOWN}] setta il processo o process group che riceverà i
+\item[\macro{F\_SETOWN}] imposta il processo o process group che riceverà i
   segnali \macro{SIGIO} e \macro{SIGURG} per gli eventi associati al file
-  descriptor \var{fd}.  I process group sono settati usando valori negativi.
+  descriptor \var{fd}.  I process group sono impostati usando valori negativi.
 \item[\macro{F\_GETSIG}] restituisce il valore del segnale mandato quando ci
-  sono dati disponibili in input su un file descriptor aperto o settato in I/O
-  asincrono. Il valore 0 indica il valore default (che è \macro{SIGIO}), un
-  valore diverso da zero indica il segnale richiesto, (che può essere lo
-  stesso \macro{SIGIO}).
-\item[\macro{F\_SETSIG}] setta il segnale da inviare quando diventa possibile
-  effettuare I/O sul file descriptor in caso di I/O asincrono. Il valore zero
-  indica di usare il segnale di default, \macro{SIGIO}. Un altro valore
-  (compreso lo stesso \macro{SIGIO}) specifica il segnale voluto; l'uso di un
-  valore diverso da zero permette inoltre, se si è installato il manipolatore
-  del segnale come \var{sa\_sigaction} usando \macro{SA\_SIGINFO}, (vedi
-  \secref{sec:sig_sigaction}), di rendere disponibili al manipolatore
-  informazioni ulteriori informazioni riguardo il file che ha generato il
-  segnale attraverso i valori restituiti in \type{siginfo\_t} (come vedremo in
+  sono dati disponibili in input su un file descriptor aperto o impostato in
+  I/O asincrono. Il valore 0 indica il valore predefinito (che è
+  \macro{SIGIO}), un valore diverso da zero indica il segnale richiesto, (che
+  può essere lo stesso \macro{SIGIO}).
+\item[\macro{F\_SETSIG}] imposta il segnale da inviare quando diventa
+  possibile effettuare I/O sul file descriptor in caso di I/O asincrono. Il
+  valore zero indica di usare il segnale predefinito, \macro{SIGIO}. Un altro
+  valore (compreso lo stesso \macro{SIGIO}) specifica il segnale voluto; l'uso
+  di un valore diverso da zero permette inoltre, se si è installato il
+  manipolatore del segnale come \var{sa\_sigaction} usando
+  \macro{SA\_SIGINFO}, (vedi \secref{sec:sig_sigaction}), di rendere
+  disponibili al manipolatore informazioni ulteriori informazioni riguardo il
+  file che ha generato il segnale attraverso i valori restituiti in
+  \type{siginfo\_t} (come vedremo in
   \secref{sec:file_asyncronous_io}).\footnote{i due comandi \macro{F\_SETSIG}
     e \macro{F\_GETSIG} sono una estensione specifica di Linux.}
 \end{basedescript}
@@ -1069,7 +1071,7 @@ valido anche per l'interazione con i pi
 interagire con le stesse funzioni usate per i normali file di dati,
 esisteranno sempre caratteristiche peculiari, specifiche dell'hardware e della
 funzionalità che ciascuno di essi provvede, che non possono venire comprese in
-questa interfaccia astratta (un caso tipico è il settaggio della velocità di
+questa interfaccia astratta (un caso tipico è l'impostazione della velocità di
 una porta seriale, o le dimensioni di un framebuffer).
 
 Per questo motivo l'architettura del sistema ha previsto l'esistenza di una
@@ -1083,7 +1085,7 @@ per ogni singolo dispositivo.  Il prototipo di questa funzione 
   
   \bodydesc{La funzione nella maggior parte dei casi ritorna 0, alcune
     operazioni usano però il valore di ritorno per restituire informazioni. In
-    caso di errore viene sempre restituito -1 e \var{errno} viene settata ad
+    caso di errore viene sempre restituito -1 e \var{errno} viene impostata ad
     uno dei valori seguenti:
   \begin{errlist}
   \item[\macro{ENOTTY}] il file \param{fd} non è associato con un device, o la
@@ -1105,8 +1107,8 @@ sia attraverso il valore di ritorno che attraverso il terzo argomento
 \item l'esecuzione di una traccia audio di un CDROM.
 \item i comandi di avanti veloce e riavvolgimento di un nastro.
 \item il comando di espulsione di un dispositivo rimovibile.
-\item il settaggio della velocità trasmissione di una linea seriale.
-\item il settaggio della frequenza e della durata dei suoni emessi dallo
+\item l'impostazione della velocità trasmissione di una linea seriale.
+\item l'impostazione della frequenza e della durata dei suoni emessi dallo
   speaker.
 \end{itemize*}
 
@@ -1129,10 +1131,10 @@ specifici (ad esempio la gestione dei terminali 
 \func{ioctl} in quasi tutte le implementazioni di Unix), qui riportiamo solo i
 valori che sono definiti per ogni file:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\macro{FIOCLEX}] Setta il bit di \textit{close on exec}.
+\item[\macro{FIOCLEX}] Imposta il bit di \textit{close on exec}.
 \item[\macro{FIONCLEX}] Cancella il bit di \textit{close on exec}.
 \item[\macro{FIOASYNC}] Abilita l'I/O asincrono.
-\item[\macro{FIONBIO}] Abilità l'I/O in modalità non bloccante.
+\item[\macro{FIONBIO}] Abilita l'I/O in modalità non bloccante.
 \end{basedescript}
 relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}.
 
index be7b703c5150a9fadc2320f275ccb47f18c0f568..639201220867098885e57f963e48ed41c91faebe 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -21,8 +21,8 @@
 \usepackage{listings}
 \lstloadlanguages{C++}
 \usepackage{color} 
-\usepackage{mdwlist}              % scommentare per la stampa (PS e PDF)
-\usepackage{boxedminipage}        % scommentare per la stampa (PS e PDF)
+%\usepackage{mdwlist}              % scommentare per la stampa (PS e PDF)
+%\usepackage{boxedminipage}        % scommentare per la stampa (PS e PDF)
 %\usepackage{footnote} 
 %\usepackage{mdwtab} 
 %
@@ -73,7 +73,7 @@
 \tableofcontents
 \clearemptydoublepage
 
-%\include{compatib}    % commentare per la stampa PS e PDF
+\include{compatib}    % commentare per la stampa PS e PDF
 \include{macro}
 \setcounter{secnumdepth}{-2}
 \include{pref}
diff --git a/ipc.tex b/ipc.tex
index e0fef633d8d75c4f75cb8cb805f5aad3f10f3a41..9d537d479eb615c123d3b3394b168f9058aa2aaa 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -376,7 +376,7 @@ originarie del codice a barre e produce un JPEG delle dimensioni adeguate.
 Questo però ci porta a scontrarci con una caratteristica peculiare delle pipe,
 che a prima vista non è evidente. Per poter effettuare la conversione di un
 PDF infatti è necessario, per la struttura del formato, dover eseguire delle
-\func{lseek} sul file da convertire; se si esegue \cmd{gs} su un file normale
+\func{lseek} sul file da convertire; se si esegue \cmd{gs} su un file regolare
 non ci sono problemi, ma una pipe però è rigidamente sequenziale, ed il
 tentativo di eseguire detta operazione su una pipe comporta l'immediato
 fallimento con un errore di \macro{ESPIPE}.  Questo ci dice che in generale la
@@ -614,12 +614,13 @@ oggetto. Per far questo a ciascuno di essi viene anche associata una
 stessa chiave due processi diversi potranno ricavare l'identificatore
 associato ad un oggetto e accedervi entrambi.
 
-
 Questa caratteristica mostra il primo dei problemi associati al sistema di IPC
 di System V. Un secondo problema riguarda le modalità per l'accesso a questi
 oggetti. 
 
 
+
+
 \subsection{Code di messaggi}
 \label{sec:ipc_messque}
 
index 557363981e17e324cdd7789e399c8dc8704f120d..b1362a364f085a30360b0d2c292669f1fb9edcf9 100644 (file)
@@ -1322,7 +1322,7 @@ non pu
 
 Il calcolo dei dati di autenticazione viene effettuato alla sorgente su una
 versione speciale del pacchetto in cui il numero di salti nell'intestazione
-principale è settato a zero, così come le opzioni che possono essere
+principale è impostato a zero, così come le opzioni che possono essere
 modificate nella trasmissione, e l'intestazione di routing (se usata) è posta
 ai valori che deve avere all'arrivo.
 
index 383bb92a49980128003602203a588826d8b9fd95..00e75a933cbded5c6115146782db93a9c75c969c 100644 (file)
@@ -157,11 +157,11 @@ specificato in \param{status} che pu
 
 Un'esigenza comune che si incontra nella programmazione è quella di dover
 effettuare una serie di operazioni di pulizia (ad esempio salvare dei dati,
-ripristinare dei settaggi, eliminare dei file temporanei, ecc.) prima della
-conclusione di un programma. In genere queste operazioni vengono fatte in
-un'apposita sezione del programma, ma quando si realizza una libreria diventa
-antipatico dover richiedere una chiamata esplicita ad una funzione di pulizia
-al programmatore che la utilizza.
+ripristinare delle impostazioni, eliminare dei file temporanei, ecc.) prima
+della conclusione di un programma. In genere queste operazioni vengono fatte
+in un'apposita sezione del programma, ma quando si realizza una libreria
+diventa antipatico dover richiedere una chiamata esplicita ad una funzione di
+pulizia al programmatore che la utilizza.
 
 È invece molto meno soggetto ad errori, e completamente trasparente
 all'utente, avere la possibilità di effettuare automaticamente la chiamata ad
@@ -175,7 +175,7 @@ pu
   programma. 
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, \var{errno} non viene settata.}
+    fallimento, \var{errno} non viene impostata.}
 \end{prototype}
 \noindent la funzione richiede come argomento l'indirizzo della opportuna
 funzione di pulizia da chiamare all'uscita, che non deve prendere argomenti e
@@ -192,7 +192,7 @@ definita su altri sistemi; il suo prototipo 
   rispetto a quello di registrazione.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, \var{errno} non viene settata.}
+    fallimento, \var{errno} non viene impostata.}
 \end{prototype}
 
 In questo caso la funzione da chiamare prende due parametri, il primo dei
@@ -456,20 +456,20 @@ prototipi sono i seguenti:
   
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene settata a \macro{ENOMEM}.
+  \var{errno} viene impostata a \macro{ENOMEM}.
 \funcdecl{void *malloc(size\_t size)}
   Alloca \var{size} byte nello heap. La memoria non viene inizializzata.
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene settata a \macro{ENOMEM}.
+  \var{errno} viene impostata a \macro{ENOMEM}.
 \funcdecl{void *realloc(void *ptr, size\_t size)}
   Cambia la dimensione del blocco allocato all'indirizzo \var{ptr}
   portandola a \var{size}.
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene settata a \macro{ENOMEM}.
+  \var{errno} viene impostata a \macro{ENOMEM}.
 \funcdecl{void free(void *ptr)}
   Disalloca lo spazio di memoria puntato da \var{ptr}.
 
@@ -579,7 +579,7 @@ prototipo 
 
   La funzione restituisce il puntatore alla zona di memoria allocata in caso
   di successo e \macro{NULL} in caso di fallimento, nel qual caso
-  \var{errno} viene settata a \macro{ENOMEM}.
+  \var{errno} viene impostata a \macro{ENOMEM}.
 \end{prototype}
 \noindent ma in questo caso non è più necessario liberare la memoria (e quindi
 non esiste un analogo della \func{free}) in quanto essa viene rilasciata 
@@ -631,7 +631,7 @@ analoghe system call a cui fanno da interfaccia. I loro prototipi sono:
   \var{end\_data\_segment}.
   
   La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene settata a \macro{ENOMEM}.
+    fallimento, nel qual caso \var{errno} viene impostata a \macro{ENOMEM}.
 
   \funcdecl{void *sbrk(ptrdiff\_t increment)} Incrementa lo spazio dati di un
   programma di \var{increment}. Un valore zero restituisce l'attuale posizione
@@ -639,7 +639,7 @@ analoghe system call a cui fanno da interfaccia. I loro prototipi sono:
   
   La funzione restituisce il puntatore all'inizio della nuova zona di memoria
   allocata in caso di successo e \macro{NULL} in caso di fallimento, nel qual
-  caso \macro{errno} viene settata a \macro{ENOMEM}.
+  caso \macro{errno} viene impostata a \macro{ENOMEM}.
 \end{functions}
 \noindent in genere si usa \func{sbrk} con un valore zero per ottenere
 l'attuale posizione della fine del segmento dati.
@@ -740,7 +740,7 @@ Le funzioni per bloccare e sbloccare singole sezioni di memoria sono
 
   
   \bodydesc{Entrambe le funzioni ritornano 0 in caso di successo e -1 in
-    caso di errore, nel qual caso \var{errno} è settata ad uno dei
+    caso di errore, nel qual caso \var{errno} è impostata ad uno dei
     valori seguenti:
   \begin{errlist}
   \item[\macro{ENOMEM}] alcuni indirizzi dell'intervallo specificato non
@@ -827,8 +827,8 @@ che si incarica di leggere la linea di comando e di effettuarne la scansione
 (il cosiddetto \textit{parsing}) per individuare le parole che la compongono,
 ciascuna delle quali viene considerata un parametro. Di norma per individuare
 le parole viene usato come carattere di separazione lo spazio o il tabulatore,
-ma il comportamento è modificabile attraverso il settaggio della variabile di
-ambiente \cmd{IFS}.
+ma il comportamento è modificabile attraverso l'impostazione della variabile
+di ambiente \cmd{IFS}.
 
 \begin{figure}[htb]
   \centering
@@ -962,7 +962,7 @@ Normalmente \func{getopt} compie una permutazione degli elementi di \var{argv}
 così che alla fine della scansione gli elementi che non sono opzioni sono
 spostati in coda al vettore. Oltre a questa esistono altre due modalità di
 gestire gli elementi di \var{argv}; se \var{optstring} inizia con il carattere
-\texttt{'+'} (o è settata la variabile di ambiente \macro{POSIXLY\_CORRECT})
+\texttt{'+'} (o è impostata la variabile di ambiente \macro{POSIXLY\_CORRECT})
 la scansione viene fermata non appena si incontra un elemento che non è
 un'opzione. L'ultima modalità, usata quando un programma può gestire la
 mescolanza fra opzioni e argomenti, ma se li aspetta in un ordine definito, si
@@ -1046,7 +1046,7 @@ anche altre: per una lista pi
     \hline
     \hline
     \macro{USER} & $\bullet$ & $\bullet$ & $\bullet$ & Nome utente\\
-    \macro{LOGNAME} & $\bullet$ & $\bullet$ & $\bullet$ & Nome utente\\
+    \macro{LOGNAME} & $\bullet$ & $\bullet$ & $\bullet$ & Nome di login\\
     \macro{HOME} & $\bullet$ & $\bullet$ & $\bullet$ & 
     Directory base dell'utente\\
     \macro{LANG} & $\bullet$ & $\bullet$ & $\bullet$ & Localizzazione\\
@@ -1057,8 +1057,8 @@ anche altre: per una lista pi
     \macro{TERM} & $\bullet$ & $\bullet$ & $\bullet$ & Tipo di terminale\\
     \macro{PAGER} & $\bullet$ & $\bullet$ & $\bullet$ & Programma per vedere i
     testi\\
-    \macro{EDITOR} & $\bullet$ & $\bullet$ & $\bullet$ & Editor di default\\
-    \macro{BROWSER} & $\bullet$ & $\bullet$ & $\bullet$ & Browser di default\\
+    \macro{EDITOR} & $\bullet$ & $\bullet$ & $\bullet$ & Editor preferito\\
+    \macro{BROWSER} & $\bullet$ & $\bullet$ & $\bullet$ & Browser preferito\\
     \hline
   \end{tabular}
   \caption{Variabili di ambiente più comuni definite da vari standard.}
@@ -1080,7 +1080,7 @@ il cui prototipo 
 
 Oltre a questa funzione di lettura, che è l'unica definita dallo standard ANSI
 C, nell'evoluzione dei sistemi Unix ne sono state proposte altre, da
-utilizzare per settare e per cancellare le variabili di ambiente. Uno schema
+utilizzare per impostare e per cancellare le variabili di ambiente. Uno schema
 delle funzioni previste nei vari standard e disponibili in Linux è riportato
 in \ntab.
 
@@ -1116,7 +1116,7 @@ ambiente, i loro prototipi sono i seguenti:
   \headdecl{stdlib.h} 
   
   \funcdecl{int setenv(const char *name, const char *value, int overwrite)}
-  Setta la variabile di ambiente \param{name} al valore \param{value}.
+  Imposta la variabile di ambiente \param{name} al valore \param{value}.
   
   \funcdecl{int putenv(char *string)} Aggiunge la stringa \param{string}
   all'ambiente.
@@ -1146,7 +1146,7 @@ immutata se uguale a zero.
 La seconda funzione prende come parametro una stringa analoga quella
 restituita da \func{getenv}, e sempre nella forma \var{NOME=valore}. Se la
 variabile specificata non esiste la stringa sarà aggiunta all'ambiente, se
-invece esiste il suo valore sarà settato a quello specificato da
+invece esiste il suo valore sarà impostato a quello specificato da
 \param{string}. Si tenga presente che, seguendo lo standard SUSv2, le
 \acr{glibc} successive alla versione 2.1.2 aggiungono\footnote{il
   comportamento è lo stesso delle vecchie \acr{libc4} e \acr{libc5}; nelle
index e3e08e44bed80683b2cff98d8f4ee088dcbe3a79..e8f68a8fd63f6cc6c26c309abbfa3a49ee92368e 100644 (file)
@@ -433,7 +433,7 @@ alla conclusione del ciclo, prima di uscire, pu
 periodo di attesa.
 
 Se eseguiamo il comando senza specificare attese (come si può notare in
-\texttt{\small 17--19} i valori di default specificano di non attendere),
+\texttt{\small 17--19} i valori predefiniti specificano di non attendere),
 otterremo come output sul terminale:
 
 \footnotesize
@@ -601,7 +601,7 @@ Oltre ai file aperti i processi figli ereditano dal padre una serie di altre
 proprietà; la lista dettagliata delle proprietà che padre e figlio hanno in
 comune dopo l'esecuzione di una \func{fork} è la seguente:
 \begin{itemize*}
-\item i file aperti e gli eventuali flag di \textit{close-on-exec} settati
+\item i file aperti e gli eventuali flag di \textit{close-on-exec} impostati
   (vedi \secref{sec:proc_exec} e \secref{sec:file_fcntl}).
 \item gli identificatori per il controllo di accesso: il \textit{real user
     id}, il \textit{real group id}, l'\textit{effective user id},
@@ -624,7 +624,7 @@ le differenze fra padre e figlio dopo la \func{fork} invece sono:
 \begin{itemize*}
 \item il valore di ritorno di \func{fork}.
 \item il \textit{process id}. 
-\item il \textit{parent process id} (quello del figlio viene settato al
+\item il \textit{parent process id} (quello del figlio viene impostato al
   \acr{pid} del padre).
 \item i valori dei tempi di esecuzione della struttura \var{tms} (vedi
   \secref{sec:sys_cpu_times}) che nel figlio sono posti a zero.
@@ -936,7 +936,7 @@ La terminazione di un processo figlio 
 rispetto all'esecuzione di un programma e può avvenire in un qualunque
 momento. Per questo motivo, come accennato nella sezione precedente, una delle
 azioni prese dal kernel alla conclusione di un processo è quella di mandare un
-segnale di \macro{SIGCHLD} al padre. L'azione di default (si veda
+segnale di \macro{SIGCHLD} al padre. L'azione predefinita (si veda
 \secref{sec:sig_base}) per questo segnale è di essere ignorato, ma la sua
 generazione costituisce il meccanismo di comunicazione asincrona con cui il
 kernel avverte il processo padre che uno dei suoi figli è terminato.
@@ -1066,7 +1066,7 @@ famiglia di funzioni) che possono essere usate per questo compito, in realt
     qual caso \var{errno} può assumere i valori:
   \begin{errlist}
   \item[\macro{EACCES}] il file non è eseguibile, oppure il filesystem è
-    montato in \cmd{noexec}, oppure non è un file normale o un interprete.
+    montato in \cmd{noexec}, oppure non è un file regolare o un interprete.
   \item[\macro{EPERM}] il file ha i bit \acr{suid} o \acr{sgid}, l'utente non
     è root, e o il processo viene tracciato, o il filesystem è montato con
     l'opzione \cmd{nosuid}.
@@ -1221,31 +1221,32 @@ la lista completa 
   \var{tms\_cutime}, \var{tms\_ustime} (vedi \secref{sec:sys_cpu_times}).
 \end{itemize*}
 
-Inoltre i segnali che sono stati settati per essere ignorati nel processo
-chiamante mantengono lo stesso settaggio pure nel nuovo programma, tutti gli
-altri segnali vengono settati alla loro azione di default. Un caso speciale è
-il segnale \macro{SIGCHLD} che, quando settato a \macro{SIG\_IGN}, può anche
-non essere resettato a \macro{SIG\_DFL} (si veda \secref{sec:sig_gen_beha}).
+Inoltre i segnali che sono stati impostati per essere ignorati nel processo
+chiamante mantengono la stessa impostazione pure nel nuovo programma, tutti
+gli altri segnali vengono impostati alla loro azione predefinita. Un caso
+speciale è il segnale \macro{SIGCHLD} che, quando impostato a
+\macro{SIG\_IGN}, può anche non essere reimpostato a \macro{SIG\_DFL} (si veda
+\secref{sec:sig_gen_beha}).
 
 La gestione dei file aperti dipende dal valore che ha il flag di
 \textit{close-on-exec} (trattato in \secref{sec:file_fcntl}) per ciascun file
-descriptor. I file per cui è settato vengono chiusi, tutti gli altri file
-restano aperti. Questo significa che il comportamento di default è che i file
+descriptor. I file per cui è impostato vengono chiusi, tutti gli altri file
+restano aperti. Questo significa che il comportamento predefinito è che i file
 restano aperti attraverso una \func{exec}, a meno di una chiamata esplicita a
-\func{fcntl} che setti il suddetto flag.
+\func{fcntl} che imposti il suddetto flag.
 
 Per le directory, lo standard POSIX.1 richiede che esse vengano chiuse
 attraverso una \func{exec}, in genere questo è fatto dalla funzione
-\func{opendir} (vedi \secref{sec:file_dir_read}) che effettua da sola il
-settaggio del flag di \textit{close-on-exec} sulle directory che apre, in
+\func{opendir} (vedi \secref{sec:file_dir_read}) che effettua da sola
+l'impostazione del flag di \textit{close-on-exec} sulle directory che apre, in
 maniera trasparente all'utente.
 
 Abbiamo detto che il \textit{real user id} ed il \textit{real group id}
 restano gli stessi all'esecuzione di \func{exec}; lo stesso vale per
 l'\textit{effective user id} ed l'\textit{effective group id}, tranne quando
 il file che si va ad eseguire abbia o il \acr{suid} bit o lo \acr{sgid} bit
-settato, in questo caso l'\textit{effective user id} e l'\textit{effective
-  group id} vengono settati rispettivamente all'utente o al gruppo cui il file
+impostato, in questo caso l'\textit{effective user id} e l'\textit{effective
+  group id} vengono impostati rispettivamente all'utente o al gruppo cui il file
 appartiene (per i dettagli vedi \secref{sec:proc_perms}).
 
 Se il file da eseguire è in formato \emph{a.out} e necessita di librerie
@@ -1265,7 +1266,7 @@ Con la famiglia delle \func{exec} si chiude il novero delle funzioni su cui 
 basata la gestione dei processi in Unix: con \func{fork} si crea un nuovo
 processo, con \func{exec} si avvia un nuovo programma, con \func{exit} e
 \func{wait} si effettua e verifica la conclusione dei programmi. Tutte le
-altre funzioni sono ausiliarie e servono la lettura e il settaggio dei vari
+altre funzioni sono ausiliarie e servono la lettura e l'impostazione dei vari
 parametri connessi ai processi.
 
 
@@ -1352,13 +1353,13 @@ rispettivamente \textit{real} ed \textit{effective}.
 \end{table}
 
 Al primo gruppo appartengono il \textit{real user id} e il \textit{real group
-  id}: questi vengono settati al login ai valori corrispondenti all'utente con
-cui si accede al sistema (e relativo gruppo di default). Servono per
+  id}: questi vengono impostati al login ai valori corrispondenti all'utente
+con cui si accede al sistema (e relativo gruppo principale). Servono per
 l'identificazione dell'utente e normalmente non vengono mai cambiati. In
 realtà vedremo (in \secref{sec:proc_setuid}) che è possibile modificarli, ma
 solo ad un processo che abbia i privilegi di amministratore; questa
 possibilità è usata ad esempio da \cmd{login} che, una volta completata la
-procedura di autenticazione, lancia una shell per la quale setta questi
+procedura di autenticazione, lancia una shell per la quale imposta questi
 identificatori ai valori corrispondenti all'utente che entra nel sistema.
 
 Al secondo gruppo appartengono l'\textit{effective user id} e
@@ -1371,8 +1372,8 @@ dettaglio in \secref{sec:file_perm_overview}).
 Questi identificatori normalmente sono identici ai corrispondenti del gruppo
 \textit{real} tranne nel caso in cui, come accennato in
 \secref{sec:proc_exec}, il programma che si è posto in esecuzione abbia i bit
-\acr{suid} o \acr{sgid} settati (il significato di questi bit è affrontato in
-dettaglio in \secref{sec:file_suid_sgid}). In questo caso essi saranno settati
+\acr{suid} o \acr{sgid} impostati (il significato di questi bit è affrontato in
+dettaglio in \secref{sec:file_suid_sgid}). In questo caso essi saranno impostati
 all'utente e al gruppo proprietari del file. Questo consente, per programmi in
 cui ci sia necessità, di dare a qualunque utente normale privilegi o permessi
 di un'altro (o dell'amministratore).
@@ -1416,9 +1417,9 @@ migliorare la sicurezza con NFS.
 
 Il \textit{saved user id} e il \textit{saved group id} sono copie
 dell'\textit{effective user id} e dell'\textit{effective group id} del
-processo padre, e vengono settati dalla funzione \func{exec} all'avvio del
+processo padre, e vengono impostati dalla funzione \func{exec} all'avvio del
 processo, come copie dell'\textit{effective user id} e dell'\textit{effective
-  group id} dopo che questo sono stati settati tenendo conto di eventuali
+  group id} dopo che questo sono stati impostati tenendo conto di eventuali
 \acr{suid} o \acr{sgid}.  Essi quindi consentono di tenere traccia di quale
 fossero utente e gruppo effettivi all'inizio dell'esecuzione di un nuovo
 programma.
@@ -1450,10 +1451,10 @@ e del \textit{saved group id}; i loro prototipi sono:
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
 
-\funcdecl{int setuid(uid\_t uid)} Setta l'\textit{user id} del processo
+\funcdecl{int setuid(uid\_t uid)} Imposta l'\textit{user id} del processo
 corrente.
 
-\funcdecl{int setgid(gid\_t gid)} Setta il \textit{group id} del processo
+\funcdecl{int setgid(gid\_t gid)} Imposta il \textit{group id} del processo
 corrente.
 
 \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 in caso
@@ -1469,13 +1470,13 @@ eventuali \textit{supplementary group id} non vengono modificati.
 L'effetto della chiamata è diverso a seconda dei privilegi del processo; se
 l'\textit{effective user id} è zero (cioè è quello dell'amministratore di
 sistema) allora tutti gli identificatori (\textit{real}, \textit{effective}
-e \textit{saved}) vengono settati al valore specificato da \var{uid},
-altrimenti viene settato solo l'\textit{effective user id}, e soltanto se il
+e \textit{saved}) vengono impostati al valore specificato da \var{uid},
+altrimenti viene impostato solo l'\textit{effective user id}, e soltanto se il
 valore specificato corrisponde o al \textit{real user id} o al \textit{saved
   user id}. Negli altri casi viene segnalato un errore (con \macro{EPERM}).
 
 Come accennato l'uso principale di queste funzioni è quello di poter
-consentire ad un programma con i bit \acr{suid} o \acr{sgid} settati di
+consentire ad un programma con i bit \acr{suid} o \acr{sgid} impostati di
 riportare l'\textit{effective user id} a quello dell'utente che ha lanciato il
 programma, effettuare il lavoro che non necessita di privilegi aggiuntivi, ed
 eventualmente tornare indietro.
@@ -1489,7 +1490,7 @@ falsificare la registrazione. Per questo motivo questo file (e l'analogo
 un gruppo dedicato (\acr{utmp}) ed i programmi che devono accedervi (ad
 esempio tutti i programmi di terminale in X, o il programma \cmd{screen} che
 crea terminali multipli su una console) appartengono a questo gruppo ed hanno
-il bit \acr{sgid} settato.
+il bit \acr{sgid} impostato.
 
 Quando uno di questi programmi (ad esempio \cmd{xterm}) viene lanciato, la
 situazione degli identificatori è la seguente:
@@ -1501,7 +1502,7 @@ situazione degli identificatori 
 \end{eqnarray*}
 in questo modo, dato che l'\textit{effective group id} è quello giusto, il
 programma può accedere a \file{/var/log/utmp} in scrittura ed aggiornarlo. A
-questo punto il programma può eseguire una \code{setgid(getgid())} per settare
+questo punto il programma può eseguire una \code{setgid(getgid())} per impostare
 l'\textit{effective group id} a quello dell'utente (e dato che il \textit{real
   group id} corrisponde la funzione avrà successo), in questo modo non sarà
 possibile lanciare dal terminale programmi che modificano detto file, in tal
@@ -1548,11 +1549,11 @@ e \textit{real id}. I loro prototipi sono:
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
 
-\funcdecl{int setreuid(uid\_t ruid, uid\_t euid)} Setta il \textit{real user
+\funcdecl{int setreuid(uid\_t ruid, uid\_t euid)} Imposta il \textit{real user
   id} e l'\textit{effective user id} del processo corrente ai valori
 specificati da \var{ruid} e \var{euid}.
   
-\funcdecl{int setregid(gid\_t rgid, gid\_t egid)} Setta il \textit{real group
+\funcdecl{int setregid(gid\_t rgid, gid\_t egid)} Imposta il \textit{real group
   id} e l'\textit{effective group id} del processo corrente ai valori
 specificati da \var{rgid} e \var{egid}.
 
@@ -1560,7 +1561,7 @@ specificati da \var{rgid} e \var{egid}.
   di fallimento: l'unico errore possibile è \macro{EPERM}.}
 \end{functions}
 
-I processi non privilegiati possono settare i \textit{real id} soltanto ai
+I processi non privilegiati possono impostare i \textit{real id} soltanto ai
 valori dei loro \textit{effective id} o \textit{real id} e gli
 \textit{effective id} ai valori dei loro \textit{real id}, \textit{effective
   id} o \textit{saved id}; valori diversi comportano il fallimento della
@@ -1589,7 +1590,7 @@ un'implementazione che non ne prevede la presenza, e quindi non 
 usarle per correggere la situazione come nel caso precedente. Per questo
 motivo in Linux tutte le volte che tali funzioni vengono usate per modificare
 uno degli identificatori ad un valore diverso dal \textit{real id} precedente,
-il \textit{saved id} viene sempre settato al valore dell'\textit{effective
+il \textit{saved id} viene sempre impostato al valore dell'\textit{effective
   id}.
 
 
@@ -1604,21 +1605,21 @@ supportate dalla maggior parte degli Unix) e usate per cambiare gli
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
 
-\funcdecl{int seteuid(uid\_t uid)} Setta l'\textit{effective user id} del
+\funcdecl{int seteuid(uid\_t uid)} Imposta l'\textit{effective user id} del
 processo corrente a \var{uid}.
 
-\funcdecl{int setegid(gid\_t gid)} Setta l'\textit{effective group id} del
+\funcdecl{int setegid(gid\_t gid)} Imposta l'\textit{effective group id} del
 processo corrente a \var{gid}.
 
 \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 in caso
   di fallimento: l'unico errore possibile è \macro{EPERM}.}
 \end{functions}
 
-Gli utenti normali possono settare l'\textit{effective id} solo al valore del
+Gli utenti normali possono impostare l'\textit{effective id} solo al valore del
 \textit{real id} o del \textit{saved id}, l'amministratore può specificare
-qualunque valore. Queste funzioni sono usate per permettere a root di settare
+qualunque valore. Queste funzioni sono usate per permettere a root di impostare
 solo l'\textit{effective id}, dato che l'uso normale di \func{setuid} comporta
-il settaggio di tutti gli identificatori.
+l'impostazione di tutti gli identificatori.
  
 
 \subsection{Le funzioni \func{setresuid} e \func{setresgid}}
@@ -1631,12 +1632,12 @@ e permettono un completo controllo su tutti gli identificatori (\textit{real},
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
 
-\funcdecl{int setresuid(uid\_t ruid, uid\_t euid, uid\_t suid)} Setta il
+\funcdecl{int setresuid(uid\_t ruid, uid\_t euid, uid\_t suid)} Imposta il
 \textit{real user id}, l'\textit{effective user id} e il \textit{saved user
   id} del processo corrente ai valori specificati rispettivamente da
 \var{ruid}, \var{euid} e \var{suid}.
   
-\funcdecl{int setresgid(gid\_t rgid, gid\_t egid, gid\_t sgid)} Setta il
+\funcdecl{int setresgid(gid\_t rgid, gid\_t egid, gid\_t sgid)} Imposta il
 \textit{real group id}, l'\textit{effective group id} e il \textit{saved group
   id} del processo corrente ai valori specificati rispettivamente da
 \var{rgid}, \var{egid} e \var{sgid}.
@@ -1681,7 +1682,7 @@ specificati come puntatori (
 \subsection{Le funzioni \func{setfsuid} e \func{setfsgid}}
 \label{sec:proc_setfsuid}
 
-Queste funzioni sono usate per settare gli identificatori usati da Linux per
+Queste funzioni sono usate per impostare gli identificatori usati da Linux per
 il controllo dell'accesso ai file. Come già accennato in
 \secref{sec:proc_access_id} in Linux è definito questo ulteriore gruppo di
 identificatori, che di norma sono assolutamente equivalenti agli
@@ -1706,10 +1707,10 @@ usate se si intendono scrivere programmi portabili; i loro prototipi sono:
 \begin{functions}
 \headdecl{sys/fsuid.h}
 
-\funcdecl{int setfsuid(uid\_t fsuid)} Setta il \textit{filesystem user id} del
+\funcdecl{int setfsuid(uid\_t fsuid)} Imposta il \textit{filesystem user id} del
 processo corrente a \var{fsuid}.
 
-\funcdecl{int setfsgid(gid\_t fsgid)} Setta l'\textit{filesystem group id} del
+\funcdecl{int setfsgid(gid\_t fsgid)} Imposta l'\textit{filesystem group id} del
 processo corrente a \var{fsgid}.
 
 \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 in caso
@@ -1740,7 +1741,7 @@ questa funzione 
   
   \bodydesc{La funzione restituisce il numero di gruppi letti in caso di
     successo e -1 in caso di fallimento, nel qual caso \var{errno} viene
-    settata a: 
+    impostata a: 
     \begin{errlist}
     \item[\macro{EFAULT}] \param{list} non ha un indirizzo valido.
     \item[\macro{EINVAL}] il valore di \param{size} è diverso da zero ma
@@ -1770,18 +1771,18 @@ cui l'utente appartiene. Si noti che \param{ngroups} 
 perché qualora il valore specificato sia troppo piccolo la funzione ritorna
 -1, passando indietro il numero dei gruppi trovati.
 
-Per settare i gruppi supplementari di un processo ci sono due funzioni, che
+Per impostare i gruppi supplementari di un processo ci sono due funzioni, che
 possono essere usate solo se si hanno i privilegi di amministratore. La prima
 delle due è \func{setgroups}, ed il suo prototipo è:
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{grp.h}
   
-  \funcdecl{int setgroups(size\_t size, gid\_t *list)} Setta i gruppi
+  \funcdecl{int setgroups(size\_t size, gid\_t *list)} Imposta i gruppi
   supplementari del processo ai valori specificati in \param{list}.
 
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene settata a:
+    fallimento, nel qual caso \var{errno} viene impostata a:
     \begin{errlist}
     \item[\macro{EFAULT}] \param{list} non ha un indirizzo valido.
     \item[\macro{EPERM}] il processo non ha i privilegi di amministratore.
@@ -1790,18 +1791,18 @@ delle due 
     \end{errlist}}
 \end{functions}
 
-Se invece si vogliono settare i gruppi supplementari del processo a quelli di
+Se invece si vogliono impostare i gruppi supplementari del processo a quelli di
 un utente specifico, si può usare \func{initgroups} il cui prototipo è:
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{grp.h}
 
-  \funcdecl{int initgroups(const char *user, gid\_t group)} Setta i gruppi
+  \funcdecl{int initgroups(const char *user, gid\_t group)} Imposta i gruppi
   supplementari del processo a quelli di cui è membro l'utente \param{user},
   aggiungendo il gruppo addizionale \param{group}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene settata agli stessi valori di
+    fallimento, nel qual caso \var{errno} viene impostata agli stessi valori di
     \func{setgroups} più \macro{ENOMEM} quando non c'è memoria sufficiente per
     allocare lo spazio per informazioni dei gruppi.}
 \end{functions}
@@ -1809,7 +1810,7 @@ un utente specifico, si pu
 La funzione esegue la scansione del database dei gruppi (usualmente
 \file{/etc/groups}) cercando i gruppi di cui è membro \param{user} e
 costruendo una lista di gruppi supplementari a cui aggiunge \param{group}, che
-poi setta usando \func{setgroups}.
+poi imposta usando \func{setgroups}.
 
 Si tenga presente che sia \func{setgroups} che \func{initgroups} non sono
 definite nello standard POSIX.1 e che pertanto non è possibile utilizzarle
@@ -2064,10 +2065,10 @@ prima della chiamata alla funzione, per verificare che essa resti uguale a
 zero.  
 
 Analoga a \func{getpriority} la funzione \func{setpriority} permette di
-settare la priorità di uno o più processi; il suo prototipo è:
+impostare la priorità di uno o più processi; il suo prototipo è:
 \begin{prototype}{sys/resource.h}
 {int setpriority(int which, int who, int prio)}  
-  Setta la priorità per l'insieme dei processi specificati.
+  Imposta la priorità per l'insieme dei processi specificati.
 
   \bodydesc{La funzione ritorna la priorità in caso di successo e -1 in caso di
     errore, nel qual caso \var{errno} può assumere i valori:
@@ -2082,7 +2083,7 @@ settare la priorit
   \end{errlist}}
 \end{prototype}
 
-La funzione setta la priorità al valore specificato da \param{prio} per tutti
+La funzione imposta la priorità al valore specificato da \param{prio} per tutti
 i processi indicati dagli argomenti \param{which} e \param{who}.  La gestione
 dei permessi dipende dalle varie implementazioni; in Linux, secondo le
 specifiche dello standard SUSv3, e come avviene per tutti i sistemi che
@@ -2140,12 +2141,12 @@ di scheduling che si 
   stessa priorità ed in stato \textit{runnable} entrano nel circolo.
 \end{basedescript}
 
-La funzione per settare le politiche di scheduling (sia real-time che
+La funzione per impostare le politiche di scheduling (sia real-time che
 ordinarie) ed i relativi parametri è \func{sched\_setscheduler}; il suo
 prototipo è:
 \begin{prototype}{sched.h}
 {int sched\_setscheduler(pid\_t pid, int policy, const struct sched\_param *p)}
-  Setta priorità e politica di scheduling per il processo \param{pid}.
+  Imposta priorità e politica di scheduling per il processo \param{pid}.
 
   \bodydesc{La funzione ritorna la priorità in caso di successo e -1 in caso di
     errore, nel qual caso \var{errno} può assumere i valori:
@@ -2159,13 +2160,13 @@ prototipo 
   \end{errlist}}
 \end{prototype}
 
-La funzione esegue il settaggio per il processo specificato; un valore nullo
-di \param{pid} esegue il settaggio per il processo corrente, solo un processo
-con i privilegi di amministratore può settare delle priorità assolute diverse
-da zero. La politica di scheduling è specificata dall'argomento \param{policy}
-i cui possibili valori sono riportati in \tabref{tab:proc_sched_policy}; un
-valore negativo per \param{policy} mantiene la politica di scheduling
-corrente.
+La funzione esegue l'impostazione per il processo specificato; un valore nullo
+di \param{pid} esegue l'impostazione per il processo corrente, solo un
+processo con i privilegi di amministratore può impostare delle priorità
+assolute diverse da zero. La politica di scheduling è specificata
+dall'argomento \param{policy} i cui possibili valori sono riportati in
+\tabref{tab:proc_sched_policy}; un valore negativo per \param{policy} mantiene
+la politica di scheduling corrente.
 
 \begin{table}[htb]
   \centering
@@ -2215,7 +2216,7 @@ i cui prototipi sono:
 I processi con politica di scheduling \macro{SCHED\_OTHER} devono specificare
 un valore nullo (altrimenti si avrà un errore \macro{EINVAL}), questo valore
 infatti non ha niente a che vedere con la priorità dinamica determinata dal
-valore di \var{nice}, che deve essere settato con le funzioni viste in
+valore di \var{nice}, che deve essere impostato con le funzioni viste in
 precedenza.
 
 \begin{figure}[!htb]
@@ -2269,7 +2270,7 @@ prototipi sono:
   \headdecl{sched.h}
 
   \funcdecl{int sched\_setparam(pid\_t pid, const struct sched\_param *p)}
-  Setta la priorità assoluta del processo \param{pid}.
+  Imposta la priorità assoluta del processo \param{pid}.
 
 
   \funcdecl{int sched\_getparam(pid\_t pid, struct sched\_param *p)}
@@ -2320,7 +2321,7 @@ volontariamente la CPU; questo viene fatto attraverso la funzione
   Rilascia volontariamente l'esecuzione.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
-    nel qual caso \var{errno} viene settata opportunamente.}
+    nel qual caso \var{errno} viene impostata opportunamente.}
 \end{prototype}
 
 La funzione fa si che il processo rilasci la CPU, in modo da essere rimesso in
index 59d28704a94022447e8e29eb4cbcfaba85122781..0026cda568e002f288163801d014a5b3adae889f 100644 (file)
@@ -58,10 +58,10 @@ dall'utente o da un altro processo) comporta l'intervento diretto da parte del
 kernel che causa la generazione un particolare tipo di segnale.
 
 Quando un processo riceve un segnale, invece del normale corso del programma,
-viene eseguita una azione di default o una apposita routine di gestione (il
-cosiddetto \textit{signal handler} o \textsl{manipolatore}) che può essere
-stata specificata dall'utente (nel qual caso si dice che si
-\textsl{intercetta} il segnale).
+viene eseguita una azione predefinita o una apposita routine di gestione
+(quello che da qui in avanti chiameremo il \textsl{gestore} del segnale,
+dall'inglese\textit{signal handler}) che può essere stata specificata
+dall'utente (nel qual caso si dice che si \textsl{intercetta} il segnale).
 
 
 \subsection{Le \textsl{semantiche} del funzionamento dei segnali}
@@ -77,21 +77,20 @@ individuare due tipologie fondamentali di comportamento dei segnali (dette
 Nella \textsl{semantica inaffidabile} (quella implementata dalle prime
 versioni di Unix) la routine di gestione del segnale specificata dall'utente
 non resta attiva una volta che è stata eseguita; è perciò compito dell'utente
-stesso ripetere l'installazione della stessa all'interno della routine di
-gestione, in tutti i casi in cui si vuole che il manipolatore esterno resti
-attivo.
+stesso ripetere l'installazione all'interno del \textsl{gestore} del segnale,
+in tutti quei casi in cui si vuole che esso resti attivo.
 
 In questo caso è possibile una situazione in cui i segnali possono essere
 perduti. Si consideri il segmento di codice riportato in
 \secref{fig:sig_old_handler}, nel programma principale viene installato un
-manipolatore (\texttt{\small 5}), ed in quest'ultimo la prima operazione
+gestore (\texttt{\small 5}), ed in quest'ultimo la prima operazione
 (\texttt{\small 11}) è quella di reinstallare se stesso. Se nell'esecuzione
-del manipolatore un secondo segnale arriva prima che esso abbia potuto
-eseguire la reinstallazione, verrà eseguito il comportamento di default
-assegnato al segnale stesso, il che può comportare, a seconda dei casi, che il
-segnale viene perso (se il default era quello di ignorarlo) o la terminazione
-immediata del processo; in entrambi i casi l'azione prevista non verrà
-eseguita.
+del gestore un secondo segnale arriva prima che esso abbia potuto eseguire la
+reinstallazione, verrà eseguito il comportamento predefinito assegnato al
+segnale stesso, il che può comportare, a seconda dei casi, che il segnale
+viene perso (se l'impostazione predefinita era quello di ignorarlo) o la
+terminazione immediata del processo; in entrambi i casi l'azione prevista non
+verrà eseguita.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -113,14 +112,14 @@ int sig_handler()
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{Esempio di codice di un manipolatore di segnale per la semantica
+  \caption{Esempio di codice di un gestore di segnale per la semantica
     inaffidabile.} 
   \label{fig:sig_old_handler}
 \end{figure}
 
 Questa è la ragione per cui l'implementazione dei segnali secondo questa
 semantica viene chiamata \textsl{inaffidabile}; infatti la ricezione del
-segnale e la reinstallazione del suo manipolatore non sono operazioni
+segnale e la reinstallazione del suo gestore non sono operazioni
 atomiche, e sono sempre possibili delle race condition\index{race condition}
 (sull'argomento vedi quanto detto in \secref{sec:proc_multi_prog}).
 
@@ -130,10 +129,10 @@ segnale, ma non 
 di un segnale, pur mantenendo memoria del fatto che è avvenuto.
 
 Nella semantica \textsl{affidabile} (quella utilizzata da Linux e da ogni Unix
-moderno) il manipolatore una volta installato resta attivo e non si hanno
+moderno) il gestore una volta installato resta attivo e non si hanno
 tutti i problemi precedenti. In questa semantica i segnali vengono
 \textsl{generati} dal kernel per un processo all'occorrenza dell'evento che
-causa il segnale. In genere questo viene fatto dal kernel settando l'apposito
+causa il segnale. In genere questo viene fatto dal kernel impostando l'apposito
 campo della \var{task\_struct} del processo nella process table (si veda
 \figref{fig:proc_task_struct}).
 
@@ -143,12 +142,12 @@ per tutto il tempo che passa fra la generazione del segnale e la sua consegna
 esso è detto \textsl{pendente} (o \textit{pending}). In genere questa
 procedura viene effettuata dallo scheduler quando, riprendendo l'esecuzione
 del processo in questione, verifica la presenza del segnale nella
-\var{task\_struct} e mette in esecuzione il manipolatore.
+\var{task\_struct} e mette in esecuzione il gestore.
 
 In questa semantica un processo ha la possibilità di bloccare la consegna dei
 segnali, in questo caso, se l'azione per il suddetto segnale non è quella di
 ignorarlo, il segnale resta \textsl{pendente} fintanto che il processo non lo
-sblocca (nel qual caso viene consegnato) o setta l'azione di default per
+sblocca (nel qual caso viene consegnato) o imposta l'azione corrispondente per
 ignorarlo.
 
 Si tenga presente che il kernel stabilisce cosa fare con un segnale che è
@@ -204,12 +203,12 @@ internamente o esternamente al processo.
 \subsection{La notifica dei segnali}
 \label{sec:sig_notification}
 
-Come accennato quando un segnale viene generato, se la sua azione di default
+Come accennato quando un segnale viene generato, se la sua azione predefinita
 non è quella di essere ignorato, il kernel prende nota del fatto nella
 \var{task\_struct} del processo; si dice così che il segnale diventa
 \textsl{pendente} (o \textit{pending}), e rimane tale fino al momento in cui
-verrà notificato al processo (o verrà specificata come azione di default
-quella di ignorarlo).
+verrà notificato al processo (o verrà specificata come azione quella di
+ignorarlo).
 
 Normalmente l'invio al processo che deve ricevere il segnale è immediato ed
 avviene non appena questo viene rimesso in esecuzione dallo scheduler che
@@ -234,15 +233,15 @@ una  delle tre possibilit
 
 \begin{itemize*}
 \item ignorare il segnale.
-\item catturare il segnale, ed utilizzare il manipolatore specificato.
-\item accettare l'azione di default per quel segnale.
+\item catturare il segnale, ed utilizzare il gestore specificato.
+\item accettare l'azione predefinita per quel segnale.
 \end{itemize*}
 
 Un programma può specificare queste scelte usando le due funzioni
 \func{signal} e \func{sigaction} (vedi \secref{sec:sig_signal} e
-\secref{sec:sig_sigaction}). Se si è installato un manipolatore sarà
+\secref{sec:sig_sigaction}). Se si è installato un gestore sarà
 quest'ultimo ad essere eseguito alla notifica del segnale.  Inoltre il sistema
-farà si che mentre viene eseguito il manipolatore di un segnale, quest'ultimo
+farà si che mentre viene eseguito il gestore di un segnale, quest'ultimo
 venga automaticamente bloccato (così si possono evitare race
 condition\index{race condition}).
 
@@ -301,23 +300,23 @@ vari standard.
     \textbf{Sigla} & \textbf{Significato} \\
     \hline
     \hline
-    A & L'azione di default è terminare il processo. \\
-    B & L'azione di default è ignorare il segnale. \\
-    C & L'azione di default è terminare il processo e scrivere un \textit{core
+    A & L'azione predefinita è terminare il processo. \\
+    B & L'azione predefinita è ignorare il segnale. \\
+    C & L'azione predefinita è terminare il processo e scrivere un \textit{core
         dump}. \\
-    D & L'azione di default è fermare il processo. \\
+    D & L'azione predefinita è fermare il processo. \\
     E & Il segnale non può essere intercettato. \\
     F & Il segnale non può essere ignorato.\\
     \hline
   \end{tabular}
-  \caption{Legenda delle azioni di default dei segnali riportate in 
+  \caption{Legenda delle azioni predefinite dei segnali riportate in 
     \tabref{tab:sig_signal_list}.}
   \label{tab:sig_action_leg}
 \end{table}
 
-In \tabref{tab:sig_signal_list} si sono anche riportate le azioni di default
+In \tabref{tab:sig_signal_list} si sono anche riportate le azioni predefinite
 di ciascun segnale (riassunte con delle lettere, la cui legenda completa è in
-\tabref{tab:sig_action_leg}), quando nessun manipolatore è installato un
+\tabref{tab:sig_action_leg}), quando nessun gestore è installato un
 segnale può essere ignorato o causare la terminazione del processo. Nella
 colonna standard sono stati indicati anche gli standard in cui ciascun segnale
 è definito, secondo lo schema di \tabref{tab:sig_standard_leg}.
@@ -360,7 +359,7 @@ stato dello stack e delle variabili al momento della ricezione del segnale.
                                controllo                                     \\
     \macro{SIGINT}   &PL & A & Interrupt da tastiera (\cmd{C-c})             \\
     \macro{SIGQUIT}  &PL & C & Quit da tastiera (\cmd{C-y})                  \\
-    \macro{SIGILL}   &PL & C & Istruzione illegale                           \\
+    \macro{SIGILL}   &PL & C & Istruzione illecita                           \\
     \macro{SIGABRT}  &PL & C & Segnale di abort da \func{abort}              \\
     \macro{SIGFPE}   &PL & C & Errore aritmetico                             \\
     \macro{SIGKILL}  &PL &AEF& Segnale di terminazione forzata               \\
@@ -420,14 +419,14 @@ dereferenziato un puntatore non valido o ha eseguito una operazione aritmetica
 proibita) e l'esecuzione non può essere proseguita.
 
 In genere si intercettano questi segnali per permettere al programma di
-terminare in maniera pulita, ad esempio per ripristinare i settaggi della
+terminare in maniera pulita, ad esempio per ripristinare le impostazioni della
 console o eliminare i file di lock prima dell'uscita.  In questo caso il
-manipolatore deve concludersi ripristinando l'azione di default e rialzando il
+gestore deve concludersi ripristinando l'azione predefinita e rialzando il
 segnale, in questo modo il programma si concluderà senza effetti spiacevoli,
-ma riportando lo stesso stato di uscita che avrebbe avuto se il manipolatore
-non ci fosse stato.
+ma riportando lo stesso stato di uscita che avrebbe avuto se il gestore non ci
+fosse stato.
 
-L'azione di default per tutti questi segnali è causare la terminazione del
+L'azione predefinita per tutti questi segnali è causare la terminazione del
 processo che li ha causati. In genere oltre a questo il segnale provoca pure
 la registrazione su disco di un file di \textit{core dump} che viene scritto
 in un file \file{core} nella directory corrente del processo al momento
@@ -440,7 +439,7 @@ Questi segnali sono:
   derivi da \textit{floating point exception} si applica a tutti gli errori
   aritmetici compresa la divisione per zero e l'overflow. 
   
-  Se il manipolatore ritorna il comportamento del processo è indefinito, ed
+  Se il gestore ritorna il comportamento del processo è indefinito, ed
   ignorare questo segnale può condurre ad un ciclo infinito.
 
 %   Per questo segnale le cose sono complicate dal fatto che possono esserci
@@ -450,20 +449,20 @@ Questi segnali sono:
   
 \item[\macro{SIGILL}] Il nome deriva da \textit{illegal instruction},
   significa che il programma sta cercando di eseguire una istruzione
-  privilegiata o inesistente, in generale del codice illegale. Poiché il
+  privilegiata o inesistente, in generale del codice illecito. Poiché il
   compilatore del C genera del codice valido si ottiene questo segnale se il
   file eseguibile è corrotto o si stanno cercando di eseguire dei dati.
   Quest'ultimo caso può accadere quando si passa un puntatore sbagliato al
   posto di un puntatore a funzione, o si eccede la scrittura di un vettore di
   una variabile locale, andando a corrompere lo stack. Lo stesso segnale viene
   generato in caso di overflow dello stack o di problemi nell'esecuzione di un
-  manipolatore. Se il manipolatore ritorna il comportamento del processo è
+  gestore. Se il gestore ritorna il comportamento del processo è
   indefinito.
 \item[\macro{SIGSEGV}] Il nome deriva da \textit{segment violation}, e
   significa che il programma sta cercando di leggere o scrivere in una zona di
   memoria protetta al di fuori di quella che gli è stata riservata dal
   sistema. In genere è il meccanismo della protezione della memoria che si
-  accorge dell'errore ed il kernel genera il segnale.  Se il manipolatore
+  accorge dell'errore ed il kernel genera il segnale.  Se il gestore
   ritorna il comportamento del processo è indefinito.
 
   È tipico ottenere questo segnale dereferenziando un puntatore nullo o non
@@ -498,10 +497,10 @@ La ragione per cui pu
 programma può dover eseguire una serie di azioni di pulizia prima di
 terminare, come salvare informazioni sullo stato in cui si trova, cancellare
 file temporanei, o ripristinare delle condizioni alterate durante il
-funzionamento (come il modo del terminale o i settaggi di una qualche
+funzionamento (come il modo del terminale o le impostazioni di una qualche
 periferica).
 
-L'azione di default di questi segnali è di terminare il processo, questi
+L'azione predefinita di questi segnali è di terminare il processo, questi
 segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\macro{SIGTERM}] Il nome sta per \textit{terminate}. È un segnale
@@ -514,13 +513,12 @@ segnali sono:
   INTR (interrupt, generato dalla sequenza \macro{C-c}).
 \item[\macro{SIGQUIT}] È analogo a \macro{SIGINT} con la differenze che è
   controllato da un'altro carattere di controllo, QUIT, corrispondente alla
-  sequenza \verb|C-\|. A differenza del precedente l'azione di default,
-  oltre alla terminazione del processo, comporta anche la creazione di un core
-  dump. 
+  sequenza \verb|C-\|. A differenza del precedente l'azione predefinita, oltre
+  alla terminazione del processo, comporta anche la creazione di un core dump.
 
   In genere lo si può pensare come corrispondente ad una condizione di
   errore del programma rilevata dall'utente. Per questo motivo non è opportuno
-  fare eseguire al manipolatore di questo segnale le operazioni di pulizia
+  fare eseguire al gestore di questo segnale le operazioni di pulizia
   normalmente previste (tipo la cancellazione di file temporanei), dato che in
   certi casi esse possono eliminare informazioni utili nell'esame dei core
   dump. 
@@ -537,7 +535,7 @@ segnali sono:
   processo da parte di \macro{SIGKILL} costituirebbe un malfunzionamento del
   kernel). Talvolta è il sistema stesso che può generare questo segnale quando
   per condizioni particolari il processo non può più essere eseguito neanche
-  per eseguire un manipolatore.
+  per eseguire un gestore.
 \item[\macro{SIGHUP}] Il nome sta per \textit{hang-up}. Segnala che il
   terminale dell'utente si è disconnesso (ad esempio perché si è interrotta la
   rete). Viene usato anche per riportare la terminazione del processo di
@@ -554,9 +552,9 @@ segnali sono:
 \label{sec:sig_alarm}
 
 Questi segnali sono generati dalla scadenza di un timer. Il loro comportamento
-di default è quello di causare la terminazione del programma, ma con questi
-segnali la scelta di default è irrilevante, in quanto il loro uso presuppone
-sempre la necessità di un manipolatore.  Questi segnali sono:
+predefinito è quello di causare la terminazione del programma, ma con questi
+segnali la scelta predefinita è irrilevante, in quanto il loro uso presuppone
+sempre la necessità di un gestore.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\macro{SIGALRM}] Il nome sta per \textit{alarm}. Segnale la scadenza di
   un timer misurato sul tempo reale o sull'orologio di sistema. È normalmente
@@ -579,7 +577,7 @@ Questi segnali operano in congiunzione con le funzioni di I/O asincrono. Per
 questo occorre comunque usare \func{fcntl} per abilitare un file descriptor a
 generare questi segnali. 
 
-L'azione di default è di essere ignorati. Questi segnali sono:
+L'azione predefinita è di essere ignorati. Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\macro{SIGIO}] Questo segnale viene inviato quando un file descriptor è
   pronto per eseguire dell'input/output. In molti sistemi solo i socket e i
@@ -601,22 +599,22 @@ loro uso 
 cui si trattano gli argomenti relativi.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\macro{SIGCHLD}] Questo è il segnale mandato al processo padre quando un
-  figlio termina o viene fermato. L'azione di default è di ignorare il
+  figlio termina o viene fermato. L'azione predefinita è di ignorare il
   segnale, la sua gestione è trattata in \secref{sec:proc_wait}.
 \item[\macro{SIGCLD}] Per Linux questo è solo un segnale identico al
   precedente, il nome è obsoleto e andrebbe evitato. 
 \item[\macro{SIGCONT}] Il nome sta per \textit{continue}. Il segnale viene
   usato per fare ripartire un programma precedentemente fermato da
   \macro{SIGSTOP}. Questo segnale ha un comportamento speciale, e fa sempre
-  ripartire il processo prima della sua consegna. Il comportamento di default
+  ripartire il processo prima della sua consegna. Il comportamento predefinito
   è di fare solo questo; il segnale non può essere bloccato. Si può anche
-  installare un manipolatore, ma il segnale provoca comunque il riavvio del
+  installare un gestore, ma il segnale provoca comunque il riavvio del
   processo.
   
   La maggior pare dei programmi non hanno necessità di intercettare il
   segnale, in quanto esso è completamente trasparente rispetto all'esecuzione
   che riparte senza che il programma noti niente. Si possono installare dei
-  manipolatori per far si che un programma produca una qualche azione speciale
+  gestori per far si che un programma produca una qualche azione speciale
   se viene fermato e riavviato, come per esempio riscrivere un prompt, o
   inviare un avviso. 
 \item[\macro{SIGSTOP}] Il segnale ferma un processo (lo porta in uno stato di
@@ -625,18 +623,18 @@ cui si trattano gli argomenti relativi.  Questi segnali sono:
   ferma il processo interattivamente, ed è generato dal carattere SUSP
   (prodotto dalla combinazione \macro{C-z}), ed al contrario di
   \macro{SIGSTOP} può essere intercettato e ignorato. In genere un programma
-  installa un manipolatore per questo segnale quando vuole lasciare il sistema
+  installa un gestore per questo segnale quando vuole lasciare il sistema
   o il terminale in uno stato definito prima di fermarsi; se per esempio un
-  programma ha disabilitato l'eco sul terminale può installare un manipolatore
+  programma ha disabilitato l'eco sul terminale può installare un gestore
   per riabilitarlo prima di fermarsi.
 \item[\macro{SIGTTIN}] Un processo non può leggere dal terminale se esegue una
   sessione di lavoro in background. Quando un processo in background tenta di
   leggere da un terminale viene inviato questo segnale a tutti i processi
-  della sessione di lavoro. L'azione di default è di fermare il processo.
+  della sessione di lavoro. L'azione predefinita è di fermare il processo.
   L'argomento è trattato in \secref{sec:sess_xxx}.
 \item[\macro{SIGTTOU}] Segnale analogo al precedente \macro{SIGTTIN}, ma
   generato quando si tenta di scrivere o modificare uno dei modi del
-  terminale. L'azione di default è di fermare il processo, l'argomento è
+  terminale. L'azione predefinita è di fermare il processo, l'argomento è
   trattato in \secref{sec:sess_xxx}.
 \end{basedescript}
 
@@ -649,7 +647,7 @@ operazioni da lui eseguite; non indicano errori del programma quanto errori
 che impediscono il completamento dell'esecuzione dovute all'interazione con il
 resto del sistema.
 
-L'azione di default di questi segnali è di terminare il processo, questi
+L'azione predefinita di questi segnali è di terminare il processo, questi
 segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\macro{SIGPIPE}] Sta per \textit{Broken pipe}. Se si usano delle pipe o
@@ -682,13 +680,13 @@ classificabili in maniera omogenea. Questi segnali sono:
 \item[\macro{SIGUSR2}] Insieme a \macro{SIGUSR1} è un segnale a disposizione
   dell'utente che li può usare per quello che vuole. Possono essere utili per
   implementare una comunicazione elementare fra processi diversi, o per
-  eseguire a richiesta una operazione utilizzando un manipolatore. L'azione di
-  default è terminare il processo.
+  eseguire a richiesta una operazione utilizzando un gestore. L'azione
+  predefinita è di terminare il processo.
 \item[\macro{SIGWINCH}] Il nome sta per \textit{window (size) change} e viene
   generato in molti sistemi (GNU/Linux compreso) quando le dimensioni (in
   righe e colonne) di un terminale vengono cambiate. Viene usato da alcuni
   programmi testuali per riformattare l'uscita su schermo quando si cambia
-  dimensione a quest'ultimo. L'azione di default è di essere ignorato.
+  dimensione a quest'ultimo. L'azione predefinita è di essere ignorato.
 \item[\macro{SIGINFO}] Il segnale indica una richiesta di informazioni. È
   usato con il controllo di sessione, causa la stampa di informazioni da parte
   del processo leader del gruppo associato al terminale di controllo, gli
@@ -703,7 +701,7 @@ Per la descrizione dei segnali il sistema mette a disposizione due funzioni,
 \func{strsignal} e \func{psignal}, che stampano un messaggio di descrizione
 dato il numero. In genere si usano quando si vuole notificare all'utente il
 segnale avvenuto (nel caso di terminazione di un processo figlio o di un
-manipolatore che gestisce più segnali); la prima funzione è una estensione
+gestore che gestisce più segnali); la prima funzione è una estensione
 GNU, accessibile avendo definito \macro{\_GNU\_SOURCE}, ed è analoga alla
 funzione \func{strerror} (si veda \secref{sec:sys_strerror}) per gli errori:
 \begin{prototype}{string.h}{char *strsignal(int signum)} 
@@ -743,11 +741,11 @@ I segnali sono il primo e pi
 eventi che possono accadere in un qualunque momento durante l'esecuzione di un
 programma. Per questa loro caratteristica la loro gestione non può essere
 effettuata all'interno del normale flusso di esecuzione dello stesso, ma è
-delegata appunto agli eventuali manipolatori che si sono installati.
+delegata appunto agli eventuali gestori che si sono installati.
 
 In questa sezione vedremo come si effettua gestione dei segnali, a partire
 dalla loro interazione con le system call, passando per le varie funzioni che
-permettono di installare i manipolatori e controllare le reazioni di un
+permettono di installare i gestori e controllare le reazioni di un
 processo alla loro occorrenza.
 
 
@@ -761,7 +759,7 @@ comportamento delle system call; in particolare due di esse, \func{fork} ed
 loro stretta relazione con la creazione di nuovi processi.
 
 Come accennato in \secref{sec:proc_fork} quando viene creato un nuovo processo
-esso eredita dal padre sia le azioni che sono state settate per i singoli
+esso eredita dal padre sia le azioni che sono state impostate per i singoli
 segnali, che la maschera dei segnali bloccati (vedi \secref{sec:sig_sigmask}).
 Invece tutti i segnali pendenti e gli allarmi vengono cancellati; essi infatti
 devono essere recapitati solo al padre, al figlio dovranno arrivare solo i
@@ -769,13 +767,13 @@ segnali dovuti alle sue azioni.
 
 Quando si mette in esecuzione un nuovo programma con \func{exec} (si ricordi
 quanto detto in \secref{sec:proc_exec}) tutti i segnali per i quali è stato
-installato un manipolatore vengono resettati a \macro{SIG\_DFL}. Non ha più
+installato un gestore vengono reimpostati a \macro{SIG\_DFL}. Non ha più
 senso infatti fare riferimento a funzioni definite nel programma originario,
 che non sono presenti nello spazio di indirizzi del nuovo programma.
 
 Si noti che questo vale solo per le azioni per le quali è stato installato un
-manipolatore; viene mantenuto invece ogni eventuale settaggio dell'azione a
-\macro{SIG\_IGN}. Questo permette ad esempio alla shell di settare ad
+gestore; viene mantenuto invece ogni eventuale impostazione dell'azione a
+\macro{SIG\_IGN}. Questo permette ad esempio alla shell di impostare ad
 \macro{SIG\_IGN} le risposte per \macro{SIGINT} e \macro{SIGQUIT} per i
 programmi eseguiti in background, che altrimenti sarebbero interrotti da una
 successiva pressione di \texttt{C-c} o \texttt{C-y}.
@@ -787,12 +785,12 @@ appartiene a quest'ultima categoria, che non 
 segnale. Esse sono dette \textsl{veloci} in quanto la loro esecuzione è
 sostanzialmente immediata; la risposta al segnale viene sempre data dopo che
 la system call è stata completata, in quanto attendere per eseguire un
-manipolatore non comporta nessun inconveniente.
+gestore non comporta nessun inconveniente.
 
 In alcuni casi però alcune system call (che per questo motivo vengono chiamate
 \textsl{lente}) possono bloccarsi indefinitamente. In questo caso non si può
 attendere la conclusione della sistem call, perché questo renderebbe
-impossibile una risposta pronta al segnale, per cui il manipolatore viene
+impossibile una risposta pronta al segnale, per cui il gestore viene
 eseguito prima che la system call sia ritornata.  Un elenco dei casi in cui si
 presenta questa situazione è il seguente:
 \begin{itemize}
@@ -811,11 +809,11 @@ presenta questa situazione 
 \item la funzione \func{wait} (se nessun processo figlio è ancora terminato).
 \end{itemize}
 
-In questo caso si pone il problema di cosa fare una volta che il manipolatore
+In questo caso si pone il problema di cosa fare una volta che il gestore
 sia ritornato. La scelta originaria dei primi Unix era quella di far ritornare
 anche la system call restituendo l'errore di \macro{EINTR}. Questa è a
 tutt'oggi una scelta corrente, ma comporta che i programmi che usano dei
-manipolatori controllino lo stato di uscita delle funzioni per ripeterne la
+gestori controllino lo stato di uscita delle funzioni per ripeterne la
 chiamata qualora l'errore fosse questo.
 
 Dimenticarsi di richiamare una system call interrotta da un segnale è un
@@ -853,10 +851,10 @@ comportamento, pur mantenendone immutato il prototipo\footnote{in realt
 \begin{prototype}{signal.h}
   {sighandler\_t signal(int signum, sighandler\_t handler)} 
   
-  Installa la funzione di gestione \param{handler} (il manipolatore) per il
+  Installa la funzione di gestione \param{handler} (il gestore) per il
   segnale \param{signum}.
   
-  \bodydesc{La funzione ritorna il precedente manipolatore in caso di successo
+  \bodydesc{La funzione ritorna il precedente gestore in caso di successo
     o \macro{SIG\_ERR} in caso di errore.}
 \end{prototype}
 
@@ -881,41 +879,43 @@ e che prende un argomento di tipo \ctyp{int}.\footnote{si devono usare le
   operatori del C, senza di esse si sarebbe definita una funzione che ritorna
   un puntatore a \ctyp{void} e non un puntatore ad una funzione \ctyp{void}.}
 La funzione \func{signal} quindi restituisce e prende come secondo argomento
-un puntatore a una funzione di questo tipo, che è appunto il manipolatore del
+un puntatore a una funzione di questo tipo, che è appunto il gestore del
 segnale.
 
 Il numero di segnale passato in \param{signum} può essere indicato
 direttamente con una delle costanti definite in \secref{sec:sig_standard}. Il
-manipolatore \param{handler} invece, oltre all'indirizzo della funzione da
-chiamare all'occorrenza del segnale, può assumere anche i due valori costanti
+gestore \param{handler} invece, oltre all'indirizzo della funzione da chiamare
+all'occorrenza del segnale, può assumere anche i due valori costanti
 \macro{SIG\_IGN} con cui si dice ignorare il segnale e \macro{SIG\_DFL} per
-installare l'azione di di default.\footnote{si ricordi però che i due segnali
+reinstallare l'azione predefinita.\footnote{si ricordi però che i due segnali
   \macro{SIGKILL} e \macro{SIGSTOP} non possono essere ignorati né
   intercettati.}
 
 La funzione restituisce l'indirizzo dell'azione precedente, che può essere
 salvato per poterlo ripristinare (con un'altra chiamata a \func{signal}) in un
-secondo tempo. Si ricordi che se si setta come azione \macro{SIG\_IGN} (o si
-setta un \macro{SIG\_DFL} per un segnale il cui default è di essere ignorato),
-tutti i segnali pendenti saranno scartati, e non verranno mai notificati.
+secondo tempo. Si ricordi che se si imposta come azione \macro{SIG\_IGN} (o si
+imposta un \macro{SIG\_DFL} per un segnale la cui azione predefinita è di
+essere ignorato), tutti i segnali pendenti saranno scartati, e non verranno
+mai notificati.
 
 L'uso di \func{signal} è soggetto a problemi di compatibilità, dato che essa
 si comporta in maniera diversa per sistemi derivati da BSD o da System V. In
 questi ultimi infatti la funzione è conforme al comportamento originale dei
-primi Unix in cui il manipolatore viene disinstallato alla sua chiamata,
+primi Unix in cui il gestore viene disinstallato alla sua chiamata,
 secondo la semantica inaffidabile; Linux seguiva questa convenzione fino alle
-\acr{libc5}. Al contrario BSD segue la semantica affidabile, non resettando il
-manipolatore e bloccando il segnale durante l'esecuzione dello stesso. Con
-l'utilizzo delle \acr{glibc} dalla versione 2 anche Linux è passato a questo
-comportamento; quello della versione originale della funzione, il cui uso è
-deprecato per i motivi visti in \secref{sec:sig_semantics}, può essere
-ottenuto chiamando \func{sysv\_signal}.  In generale, per evitare questi
-problemi, tutti i nuovi programmi dovrebbero usare \func{sigaction}.
+\acr{libc5}. Al contrario BSD segue la semantica affidabile, non
+disinstallando il gestore e bloccando il segnale durante l'esecuzione
+dello stesso. Con l'utilizzo delle \acr{glibc} dalla versione 2 anche Linux è
+passato a questo comportamento; quello della versione originale della
+funzione, il cui uso è deprecato per i motivi visti in
+\secref{sec:sig_semantics}, può essere ottenuto chiamando \func{sysv\_signal}.
+In generale, per evitare questi problemi, tutti i nuovi programmi dovrebbero
+usare \func{sigaction}.
 
 È da tenere presente che, seguendo lo standard POSIX, il comportamento di un
 processo che ignora i segnali \macro{SIGFPE}, \macro{SIGILL}, o
 \macro{SIGSEGV} (qualora non originino da una \func{kill} o una \func{raise})
-è indefinito. Un manipolatore che ritorna da questi segnali può dare luogo ad
+è indefinito. Un gestore che ritorna da questi segnali può dare luogo ad
 un ciclo infinito.
 
 
@@ -937,10 +937,9 @@ serve per inviare un segnale al processo corrente, ed il suo prototipo 
 Il valore di \param{sig} specifica il segnale che si vuole inviare e può
 essere specificato con una delle macro definite in
 \secref{sec:sig_classification}.  In genere questa funzione viene usata per
-riprodurre il comportamento di default di un segnale che sia stato
+riprodurre il comportamento predefinito di un segnale che sia stato
 intercettato. In questo caso, una volta eseguite le operazioni volute, il
-manipolatore potrà reinstallare l'azione di default, e attivarla con
-\func{raise}.
+gestore potrà reinstallare l'azione predefinita, e attivarla con \func{raise}.
 
 Se invece si vuole inviare un segnale ad un altro processo occorre utilizzare
 la funzione \func{kill}; il cui prototipo è:
@@ -1019,7 +1018,7 @@ segnale inviato sia \macro{SIGCONT}, nel quale occorre che entrambi i processi
 appartengano alla stessa sessione. Inoltre, dato il ruolo fondamentale che
 riveste nel sistema (si ricordi quanto visto in \secref{sec:sig_termination}),
 non è possibile inviare al processo 1 (cioè a \cmd{init}) segnali per i quali
-esso non abbia un manipolatore installato.
+esso non abbia un gestore installato.
 
 Infine, seguendo le specifiche POSIX 1003.1-2001, l'uso della chiamata
 \code{kill(-1, sig)} comporta che il segnale sia inviato (con la solita
@@ -1120,7 +1119,7 @@ illustrati in precedenza usare; i possibili valori sono riportati in
   \label{tab:sig_setitimer_values}
 \end{table}
 
-Il valore della struttura specificata \param{value} viene usato per settare il
+Il valore della struttura specificata \param{value} viene usato per impostare il
 timer, se il puntatore \param{ovalue} non è nullo il precedente valore viene
 salvato qui. I valori dei timer devono essere indicati attraverso una
 struttura \type{itimerval}, definita in \figref{fig:file_stat_struct}.
@@ -1131,7 +1130,7 @@ scadenza. Entrambi esprimono i tempi tramite una struttura \var{timeval} che
 permette una precisione fino al microsecondo.
 
 Ciascun timer decrementa il valore di \var{it\_value} fino a zero, poi invia
-il segnale e resetta \var{it\_value} al valore di \var{it\_interval}, in
+il segnale e reimposta \var{it\_value} al valore di \var{it\_interval}, in
 questo modo il ciclo verrà ripetuto; se invece il valore di \var{it\_interval}
 è nullo il timer si ferma.
 
@@ -1235,9 +1234,9 @@ segnale 
 può però essere intercettato per effettuare eventuali operazioni di chiusura
 prima della terminazione del processo.
 
-Lo standard ANSI C richiede inoltre che anche se il manipolatore ritorna, la
+Lo standard ANSI C richiede inoltre che anche se il gestore ritorna, la
 funzione non ritorni comunque. Lo standard POSIX.1 va oltre e richiede che se
-il processo non viene terminato direttamente dal manipolatore sia la stessa
+il processo non viene terminato direttamente dal gestore sia la stessa
 \func{abort} a farlo al ritorno dello stesso. Inoltre, sempre seguendo lo
 standard POSIX, prima della terminazione tutti i file aperti e gli stream
 saranno chiusi ed i buffer scaricati su disco. Non verranno invece eseguite le
@@ -1253,10 +1252,10 @@ Il metodo tradizionale per fare attendere\footnote{cio
 quello di usare la funzione \func{pause}, il cui prototipo è:
 \begin{prototype}{unistd.h}{int pause(void)}
   
-  Pone il processo in stato di sleep fino al ritorno di un manipolatore.
+  Pone il processo in stato di sleep fino al ritorno di un gestore.
   
   \bodydesc{La funzione ritorna solo dopo che un segnale è stato ricevuto ed
-    il relativo manipolatore è ritornato, nel qual caso restituisce -1 e setta
+    il relativo gestore è ritornato, nel qual caso restituisce -1 e imposta
     \var{errno} a \macro{EINTR}.}
 \end{prototype}
 
@@ -1306,7 +1305,7 @@ quella di SUSv2 che prevede il seguente prototipo:
   Pone il processo in stato di sleep per \param{usec} microsecondi.
   
   \bodydesc{La funzione restituisce zero se l'attesa viene completata, o -1 in
-    caso di errore, nel qual caso \var{errno} è settata a \macro{EINTR}.}
+    caso di errore, nel qual caso \var{errno} è impostata a \macro{EINTR}.}
 
 \end{prototype}
 
@@ -1321,7 +1320,7 @@ POSIX1.b, il cui prototipo 
   In caso di interruzione restituisce il tempo restante in \param{rem}.
   
   \bodydesc{La funzione restituisce zero se l'attesa viene completata, o -1 in
-    caso di errore, nel qual caso \var{errno} è settata a 
+    caso di errore, nel qual caso \var{errno} è impostata a 
     \begin{errlist}
     \item[\macro{EINVAL}] si è specificato un numero di secondi negativo o un
       numero di nanosecondi maggiore di 999.999.999.
@@ -1362,27 +1361,27 @@ viene evitato, e si raggiungono pause fino ai 2~ms con precisioni del $\mu$s.
 \subsection{Un esempio elementare}
 \label{sec:sig_sigchld}
 
-Un semplice esempio per illustrare il funzionamento di un manipolatore di
-segnale è quello della gestione di \macro{SIGCHLD}. Abbiamo visto in
+Un semplice esempio per illustrare il funzionamento di un gestore di segnale è
+quello della gestione di \macro{SIGCHLD}. Abbiamo visto in
 \secref{sec:proc_termination} che una delle azioni eseguite dal kernel alla
 conclusione di un processo è quella di inviare questo segnale al
 padre.\footnote{in realtà in SVr4 eredita la semantica di System V, in cui il
   segnale si chiama \macro{SIGCLD} e viene trattato in maniera speciale; in
-  System V infatti se si setta esplicitamente l'azione a \macro{SIG\_IGN} il
+  System V infatti se si imposta esplicitamente l'azione a \macro{SIG\_IGN} il
   segnale non viene generato ed il sistema non genera zombie (lo stato di
   terminazione viene scartato senza dover chiamare una \func{wait}). L'azione
-  di default è sempre quella di ignorare il segnale, ma non attiva questo
+  predefinita è sempre quella di ignorare il segnale, ma non attiva questo
   comportamento. Linux, come BSD e POSIX, non supporta questa semantica ed usa
   il nome di \macro{SIGCLD} come sinonimo di \macro{SIGCHLD}.} In generale
 dunque, quando non interessa elaborare lo stato di uscita di un processo, si
-può completare la gestione della terminazione installando un manipolatore per
+può completare la gestione della terminazione installando un gestore per
 \macro{SIGCHLD} il cui unico compito sia quello chiamare \func{waitpid} per
 completare la procedura di terminazione in modo da evitare la formazione di
 zombie.
 
 In \figref{fig:sig_sigchld_handl} è mostrato il codice della nostra
-implementazione del manipolatore; se aggiungiamo al codice di
-\file{ForkTest.c} l'installazione di questo manipolatore potremo verificare che
+implementazione del gestore; se aggiungiamo al codice di
+\file{ForkTest.c} l'installazione di questo gestore potremo verificare che
 ripetendo l'esempio visto in \secref{sec:proc_termination} che non si ha più
 la creazione di zombie.
 
@@ -1390,7 +1389,7 @@ la creazione di zombie.
 % naturale usare un esempio che ci permette di concludere la trattazione della
 % terminazione dei processi.
 % In questo caso si è tratterà di illustrare un esempio relativo ad un
-% manipolatore per che è previsto ritornare,
+% gestore per che è previsto ritornare,
 
 
 \begin{figure}[!htb]
@@ -1426,25 +1425,25 @@ void sigchld_hand(int sig)
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{Un manipolatore per il segnale \texttt{SIGCHLD}.} 
+  \caption{Un gestore per il segnale \texttt{SIGCHLD}.} 
   \label{fig:sig_sigchld_handl}
 \end{figure}
 
-Il codice del manipolatore è di lettura immediata; come buona norma di
+Il codice del gestore è di lettura immediata; come buona norma di
 programmazione (si ricordi quanto accennato \secref{sec:sys_errno}) si
 comincia (\texttt{\small 12-13}) con il salvare lo stato corrente di
 \var{errno}, in modo da poterlo ripristinare prima del ritorno del
-manipolatore (\texttt{\small 22-23}). In questo modo si preserva il valore
+gestore (\texttt{\small 22-23}). In questo modo si preserva il valore
 della variabile visto dal corso di esecuzione principale del processo, che
 sarebbe altrimenti sarebbe sovrascritto dal valore restituito nella successiva
 chiamata di \func{wait}.
 
-Il compito principale del manipolatore è quello di ricevere lo stato di
+Il compito principale del gestore è quello di ricevere lo stato di
 terminazione del processo, cosa che viene eseguita nel ciclo in
 (\texttt{\small 15-21}).  Il ciclo è necessario a causa di una caratteristica
 fondamentale della gestione dei segnali: abbiamo già accennato come fra la
-generazione di un segnale e l'esecuzione del manipolatore possa passare un
-certo lasso di tempo e niente ci assicura che il manipolatore venga eseguito
+generazione di un segnale e l'esecuzione del gestore possa passare un
+certo lasso di tempo e niente ci assicura che il gestore venga eseguito
 prima della generazione di ulteriori segnali dello stesso tipo. In questo caso
 normalmente i segnali segnali successivi vengono ``fusi'' col primo ed al
 processo ne viene recapitato soltanto uno.
@@ -1495,13 +1494,13 @@ versione di \func{sleep} potrebbe essere quella illustrata in
 \figref{fig:sig_sleep_wrong}.
 
 Dato che è nostra intenzione utilizzare \macro{SIGALRM} il primo passo della
-nostra implementazione di sarà quello di installare il relativo manipolatore
+nostra implementazione di sarà quello di installare il relativo gestore
 salvando il precedente (\texttt{\small 14-17}).  Si effettuerà poi una
 chiamata ad \func{alarm} per specificare il tempo d'attesa per l'invio del
 segnale a cui segue la chiamata a \func{pause} per fermare il programma
 (\texttt{\small 17-19}) fino alla sua ricezione.  Al ritorno di \func{pause},
-causato dal ritorno del manipolatore (\texttt{\small 1-9}), si ripristina il
-manipolatore originario (\texttt{\small 20-21}) restituendo l'eventuale tempo
+causato dal ritorno del gestore (\texttt{\small 1-9}), si ripristina il
+gestore originario (\texttt{\small 20-21}) restituendo l'eventuale tempo
 rimanente (\texttt{\small 22-23}) che potrà essere diverso da zero qualora
 l'interruzione di \func{pause} venisse causata da un altro segnale.
 
@@ -1553,7 +1552,7 @@ caso di un altro segnale).
 
 Questo problema può essere risolto (ed è la modalità con cui veniva fatto in
 SVr2) usando la funzione \func{longjmp} (vedi \secref{sec:proc_longjmp}) per
-uscire dal manipolatore; in questo modo, con una condizione sullo stato di
+uscire dal gestore; in questo modo, con una condizione sullo stato di
 uscita di quest'ultima, si può evitare la chiamata a \func{pause}, usando un
 codice del tipo di quello riportato in \figref{fig:sig_sleep_incomplete}.
 
@@ -1595,7 +1594,7 @@ void alarm_hand(int sig)
   \label{fig:sig_sleep_incomplete}
 \end{figure}
 
-In questo caso il manipolatore (\texttt{\small 18-26}) non ritorna come in
+In questo caso il gestore (\texttt{\small 18-26}) non ritorna come in
 \figref{fig:sig_sleep_wrong}, ma usa \func{longjmp} (\texttt{\small 24}) per
 rientrare nel corpo principale del programma; dato che in questo caso il
 valore di uscita di \func{setjmp} è 1, grazie alla condizione in
@@ -1604,15 +1603,15 @@ vuoto.
 
 Ma anche questa implementazione comporta dei problemi; in questo caso infatti
 non viene gestita correttamente l'interazione con gli altri segnali; se
-infatti il segnale di allarme interrompe un altro manipolatore, in questo caso
-l'esecuzione non riprenderà nel manipolatore in questione, ma nel ciclo
+infatti il segnale di allarme interrompe un altro gestore, in questo caso
+l'esecuzione non riprenderà nel gestore in questione, ma nel ciclo
 principale, interrompendone inopportunamente l'esecuzione.  Lo stesso tipo di
 problemi si presenterebbero se si volesse usare \func{alarm} per stabilire un
 timeout su una qualunque system call bloccante.
 
 Un secondo esempio è quello in cui si usa il segnale per notificare una
-qualche forma di evento; in genere quello che si fa in questo caso è settare
-nel manipolatore un opportuno flag da controllare nel corpo principale del
+qualche forma di evento; in genere quello che si fa in questo caso è impostare
+nel gestore un opportuno flag da controllare nel corpo principale del
 programma (con un codice del tipo di quello riportato in
 \figref{fig:sig_event_wrong}).
 
@@ -1647,7 +1646,7 @@ void alarm_hand(int sig)
   \label{fig:sig_event_wrong}
 \end{figure}
 
-La logica è quella di far settare al manipolatore (\texttt{\small 14-19}) una
+La logica è quella di far impostare al gestore (\texttt{\small 14-19}) una
 variabile globale preventivamente inizializzata nel programma principale, il
 quale potrà determinare, osservandone il contenuto, l'occorrenza o meno del
 segnale, e prendere le relative azioni conseguenti (\texttt{\small 6-11}).
@@ -1713,7 +1712,7 @@ degli insiemi di segnali: \func{sigemptyset}, \func{sigfillset},
   
   \bodydesc{Le prime quattro funzioni ritornano 0 in caso di successo, mentre
     \func{sigismember} ritorna 1 se \param{signum} è in \param{set} e 0
-    altrimenti. In caso di errore tutte ritornano -1, con \var{errno} settata a
+    altrimenti. In caso di errore tutte ritornano -1, con \var{errno} impostata a
     \macro{EINVAL} (il solo errore possibile è che \param{signum} non sia un
     segnale valido).}
 \end{functions}
@@ -1750,14 +1749,14 @@ da un processo. Il suo prototipo 
     errore, nel qual caso \var{errno} assumerà i valori:
   \begin{errlist}
   \item[\macro{EINVAL}] Si è specificato un numero di segnale invalido o si è
-    cercato di installare il manipolatore per \macro{SIGKILL} o
+    cercato di installare il gestore per \macro{SIGKILL} o
     \macro{SIGSTOP}.
   \item[\macro{EFAULT}] Si sono specificati indirizzi non validi.
   \end{errlist}}
 \end{prototype}
 
 La funzione serve ad installare una nuova \textsl{azione} per il segnale
-\param{signum}; si parla di \textsl{azione} e non di \textsl{manipolatore}
+\param{signum}; si parla di \textsl{azione} e non di \textsl{gestore}
 come nel caso di \func{signal}, in quanto la funzione consente di specificare
 le varie caratteristiche della risposta al segnale, non solo la funzione che
 verrà eseguita alla sua occorrenza.  Per questo lo standard raccomanda di
@@ -1799,19 +1798,19 @@ struct sigaction
 \end{figure}
 
 Il campo \var{sa\_mask} serve ad indicare l'insieme dei segnali che devono
-essere bloccati durante l'esecuzione del manipolatore, ad essi viene comunque
+essere bloccati durante l'esecuzione del gestore, ad essi viene comunque
 sempre aggiunto il segnale che ne ha causato la chiamata, a meno che non si
 sia specificato con \var{sa\_flag} un comportamento diverso. Quando il
-manipolatore ritorna comunque la maschera dei segnali bloccati (vedi
+gestore ritorna comunque la maschera dei segnali bloccati (vedi
 \secref{sec:sig_sigmask}) viene ripristinata al valore precedente
 l'invocazione.
 
 L'uso di questo campo permette ad esempio di risolvere il problema residuo
 dell'implementazione di \code{sleep} mostrata in
 \secref{fig:sig_sleep_incomplete}. In quel caso infatti se il segnale di
-allarme avesse interrotto un altro manipolatore questo non sarebbe stato
+allarme avesse interrotto un altro gestore questo non sarebbe stato
 eseguito correttamente; la cosa poteva essere prevenuta installando gli altri
-manipolatori usando \var{sa\_mask} per bloccare \macro{SIGALRM} durante la
+gestori usando \var{sa\_mask} per bloccare \macro{SIGALRM} durante la
 loro esecuzione.  Il valore di \var{sa\_flag} permette di specificare vari
 aspetti del comportamento di \func{sigaction}, e della reazione del processo
 ai vari segnali; i valori possibili ed il relativo significato sono riportati
@@ -1830,8 +1829,8 @@ in \tabref{tab:sig_sa_flag}.
                            fermato da uno dei segnali \macro{SIGSTOP},
                            \macro{SIGTSTP}, \macro{SIGTTIN} o 
                            \macro{SIGTTOU}.\\
-    \macro{SA\_ONESHOT}  & Ristabilisce l'azione per il segnale al valore di
-                           default una volta che il manipolatore è stato
+    \macro{SA\_ONESHOT}  & Ristabilisce l'azione per il segnale al valore 
+                           predefinito una volta che il gestore è stato
                            lanciato, riproduce cioè il comportamento della
                            semantica inaffidabile.\\  
     \macro{SA\_RESETHAND}& Sinonimo di \macro{SA\_ONESHOT}. \\
@@ -1840,13 +1839,13 @@ in \tabref{tab:sig_sa_flag}.
                            segnale; riproduce cioè il comportamento standard
                            di BSD.\\ 
     \macro{SA\_NOMASK}   & Evita che il segnale corrente sia bloccato durante
-                           l'esecuzione del manipolatore.\\
+                           l'esecuzione del gestore.\\
     \macro{SA\_NODEFER}  & Sinonimo di \macro{SA\_NOMASK}.\\
     \macro{SA\_SIGINFO}  & Deve essere specificato quando si vuole usare un
-                           manipolatore in forma estesa usando
+                           gestore in forma estesa usando
                            \var{sa\_sigaction} al posto di \var{sa\_handler}.\\
     \macro{SA\_ONSTACK}  & Stabilisce l'uso di uno stack alternativo per
-                           l'esecuzione del manipolatore (vedi
+                           l'esecuzione del gestore (vedi
                            \secref{sec:sig_specific_features}).\\ 
     \hline
   \end{tabular}
@@ -1860,13 +1859,13 @@ permette\footnote{La possibilit
   real-time (vedi \secref{sec:sig_real_time}). In precedenza era possibile
   ottenere alcune informazioni addizionali usando \var{sa\_handler} con un
   secondo parametro addizionale di tipo \var{struct sigcontext}, che adesso è
-  deprecato.}  di utilizzare due forme diverse di manipolatore, da
+  deprecato.}  di utilizzare due forme diverse di gestore, da
 specificare, a seconda dell'uso o meno del flag \macro{SA\_SIGINFO},
 rispettivamente attraverso i campi \var{sa\_sigaction} o \var{sa\_handler},
 (che devono essere usati in maniera alternativa, in certe implementazioni
 questi vengono addirittura definiti come \ctyp{union}): la prima è quella
 classica usata anche con \func{signal}, la seconda permette invece di usare un
-manipolatore in grado di ricevere informazioni più dettagliate dal sistema,
+gestore in grado di ricevere informazioni più dettagliate dal sistema,
 attraverso la struttura \type{siginfo\_t}, riportata in
 \figref{fig:sig_siginfo_t}.
 
@@ -1897,9 +1896,9 @@ siginfo_t {
   \label{fig:sig_siginfo_t}
 \end{figure}
  
-Installando un manipolatore di tipo \var{sa\_sigaction} diventa allora
+Installando un gestore di tipo \var{sa\_sigaction} diventa allora
 possibile accedere alle informazioni restituite attraverso il puntatore a
-questa struttura. Tutti i segnali settano i campi \var{si\_signo}, che riporta
+questa struttura. Tutti i segnali impostano i campi \var{si\_signo}, che riporta
 il numero del segnale ricevuto, \var{si\_errno}, che riporta, quando diverso
 da zero, il codice dell'errore associato al segnale, e \var{si\_code}, che
 viene usato dal kernel per specificare maggiori dettagli riguardo l'evento che
@@ -1933,13 +1932,13 @@ Bench
 \func{signal} occorre molta attenzione, in quanto le due funzioni possono
 interagire in maniera anomala. Infatti l'azione specificata con
 \var{sigaction} contiene un maggior numero di informazioni rispetto al
-semplice indirizzo del manipolatore restituito da \func{signal}.  Per questo
-motivo se si usa quest'ultima per installare un manipolatore sostituendone uno
+semplice indirizzo del gestore restituito da \func{signal}.  Per questo
+motivo se si usa quest'ultima per installare un gestore sostituendone uno
 precedentemente installato con \func{sigaction}, non sarà possibile effettuare
 un ripristino corretto dello stesso.
 
 Per questo è sempre opportuno usare \func{sigaction}, che è in grado di
-ripristinare correttamente un manipolatore precedente, anche se questo è stato
+ripristinare correttamente un gestore precedente, anche se questo è stato
 installato con \func{signal}. In generale poi non è il caso di usare il valore
 di ritorno di \func{signal} come campo \var{sa\_handler}, o viceversa, dato
 che in certi sistemi questi possono essere diversi. In definitiva dunque, a
@@ -1988,7 +1987,7 @@ in seguito.
 \label{sec:sig_sigmask}
 
 Come spiegato in \secref{sec:sig_semantics} tutti i moderni sistemi unix-like
-permettono si bloccare temporaneamente (o di eliminare completamente, settando
+permettono si bloccare temporaneamente (o di eliminare completamente, impostando
 \macro{SIG\_IGN} come azione) la consegna dei segnali ad un processo. Questo è
 fatto specificando la cosiddetta \textsl{maschera dei segnali} (o
 \textit{signal mask}) del processo\footnote{nel caso di Linux essa è mantenuta
@@ -1996,7 +1995,7 @@ fatto specificando la cosiddetta \textsl{maschera dei segnali} (o
 l'insieme dei segnali la cui consegna è bloccata. Abbiamo accennato in
 \secref{sec:proc_fork} che la \textit{signal mask} viene ereditata dal padre
 alla creazione di un processo figlio, e abbiamo visto al paragrafo precedente
-che essa può essere modificata, durante l'esecuzione di un manipolatore,
+che essa può essere modificata, durante l'esecuzione di un gestore,
 attraverso l'uso dal campo \var{sa\_mask} di \var{sigaction}.
 
 Uno dei problemi evidenziatisi con l'esempio di \secref{fig:sig_event_wrong} è
@@ -2043,7 +2042,7 @@ quell'indirizzo.
     \macro{SIG\_UNBLOCK} & I segnali specificati in \param{set} sono rimossi
                            dalla maschera dei segnali, specificare la
                            cancellazione di un segnale non bloccato è legale.\\
-    \macro{SIG\_SETMASK} & La maschera dei segnali è settata al valore
+    \macro{SIG\_SETMASK} & La maschera dei segnali è impostata al valore
                            specificato da \param{set}.\\
     \hline
   \end{tabular}
@@ -2058,7 +2057,7 @@ critica. La funzione permette di risolvere problemi come quelli mostrati in
 \secref{fig:sig_event_wrong}, proteggendo la sezione fra il controllo del flag
 e la sua cancellazione. 
 
-La funzione può essere usata anche all'interno di un manipolatore, ad esempio
+La funzione può essere usata anche all'interno di un gestore, ad esempio
 per riabilitare la consegna del segnale che l'ha invocato, in questo caso però
 occorre ricordare che qualunque modifica alla maschera dei segnali viene
 perduta alla conclusione del terminatore. 
@@ -2076,7 +2075,7 @@ sospensione del processo lo standard POSIX ha previsto la funzione
 \begin{prototype}{signal.h}
 {int sigsuspend(const sigset\_t *mask)} 
   
-  Setta la \textit{signal mask} specificata, mettendo in attesa il processo.
+  Imposta la \textit{signal mask} specificata, mettendo in attesa il processo.
   
   \bodydesc{La funzione restituisce zero in caso di successo e -1 per un
     errore, nel qual caso \var{errno} assumerà i valori:
@@ -2089,7 +2088,7 @@ sospensione del processo lo standard POSIX ha previsto la funzione
 Come esempio dell'uso di queste funzioni proviamo a riscrivere un'altra volta
 l'esempio di implementazione di \code{sleep}. Abbiamo accennato in
 \secref{sec:sig_sigaction} come con \func{sigaction} sia possibile bloccare
-\macro{SIGALRM} nell'installazione dei manipolatori degli altri segnali, per
+\macro{SIGALRM} nell'installazione dei gestori degli altri segnali, per
 poter usare l'implementazione vista in \secref{fig:sig_sleep_incomplete} senza
 interferenze.  Questo però comporta una precauzione ulteriore al semplice uso
 della funzione, vediamo allora come usando la nuova interfaccia è possibile
@@ -2139,12 +2138,12 @@ void alarm_hand(int sig)
 
 Per evitare i problemi di interferenza con gli altri segnali in questo caso
 non si è usato l'approccio di \figref{fig:sig_sleep_incomplete} evitando l'uso
-di \func{longjmp}. Come in precedenza il manipolatore (\texttt{\small 35-37})
+di \func{longjmp}. Come in precedenza il gestore (\texttt{\small 35-37})
 non esegue nessuna operazione, limitandosi a ritornare per interrompere il
 programma messo in attesa.
 
 La prima parte della funzione (\texttt{\small 11-15}) provvede ad installare
-l'opportuno manipolatore per \macro{SIGALRM}, salvando quello originario, che
+l'opportuno gestore per \macro{SIGALRM}, salvando quello originario, che
 sarà ripristinato alla conclusione della stessa (\texttt{\small 28}); il passo
 successivo è quello di bloccare \macro{SIGALRM} (\texttt{\small 17-19}) per
 evitare che esso possa essere ricevuto dal processo fra l'esecuzione di
@@ -2199,17 +2198,17 @@ Una delle caratteristiche di BSD, disponibile anche in Linux, 
 di usare uno stack alternativo per i segnali; è cioè possibile fare usare al
 sistema un altro stack (invece di quello relativo al processo, vedi
 \secref{sec:proc_mem_layout}) solo durante l'esecuzione di un
-manipolatore. L'uso di uno stack alternativo è del tutto trasparente ai
-manipolatori, occorre però seguire una certa procedura:
+gestore. L'uso di uno stack alternativo è del tutto trasparente ai
+gestori, occorre però seguire una certa procedura:
 \begin{enumerate*}
 \item Allocare un'area di memoria di dimensione sufficiente da usare come
   stack alternativo.
 \item Usare la funzione \func{sigaltstack} per rendere noto al sistema
   l'esistenza e la locazione dello stack alternativo.
-\item Quando si installa un manipolatore occorre usare \func{sigaction}
+\item Quando si installa un gestore occorre usare \func{sigaction}
   specificando il flag \macro{SA\_ONSTACK} (vedi \tabref{tab:sig_sa_flag}) per
   dire al sistema di usare lo stack alternativo durante l'esecuzione del
-  manipolatore. 
+  gestore. 
 \end{enumerate*}
 
 In genere il primo passo viene effettuato allocando un'opportuna area di
@@ -2218,9 +2217,9 @@ memoria con \code{malloc}; in \file{signal.h} sono definite due costanti,
 allocare una quantità di spazio opportuna, in modo da evitare overflow. La
 prima delle due è la dimensione canonica per uno stack di segnali e di norma è
 sufficiente per tutti gli usi normali. La seconda è lo spazio che occorre al
-sistema per essere in grado di lanciare il manipolatore e la dimensione di uno
+sistema per essere in grado di lanciare il gestore e la dimensione di uno
 stack alternativo deve essere sempre maggiore di questo valore. Quando si
-conosce esattamente quanto è lo spazio necessario al manipolatore gli si può
+conosce esattamente quanto è lo spazio necessario al gestore gli si può
 aggiungere questo valore per allocare uno stack di dimensione sufficiente.
 
 Come accennato per poter essere usato lo stack per i segnali deve essere
@@ -2296,13 +2295,13 @@ Si ricordi infine che una chiamata ad una funzione della famiglia
 \func{exec} cancella ogni stack alternativo.
 
 Abbiamo visto in \secref{fig:sig_sleep_incomplete} come si possa usare
-\func{longjmp} per uscire da un manipolatore rientrando direttamente nel corpo
-del programma; sappiamo però che nell'esecuzione di un manipolatore il segnale
+\func{longjmp} per uscire da un gestore rientrando direttamente nel corpo
+del programma; sappiamo però che nell'esecuzione di un gestore il segnale
 che l'ha invocato viene bloccato, e abbiamo detto che possiamo ulteriormente
 modificarlo con \func{sigprocmask}. 
 
 Resta quindi il problema di cosa succede alla maschera dei segnali quando si
-esce da un manipolatore usando questa funzione. Il comportamento dipende
+esce da un gestore usando questa funzione. Il comportamento dipende
 dall'implementazione; in particolare BSD ripristina la maschera dei segnali
 precedente l'invocazione, come per un normale ritorno, mentre System V no. Lo
 standard POSIX.1 non specifica questo comportamento per \func{setjmp} e
@@ -2354,7 +2353,7 @@ segnali classici:
 \begin{description}
 \item[I segnali non sono accumulati] 
   
-  se più segnali vengono generati prima dell'esecuzione di un manipolatore
+  se più segnali vengono generati prima dell'esecuzione di un gestore
   questo sarà eseguito una sola volta, ed il processo non sarà in grado di
   accorgersi di quante volte l'evento che ha generato il segnale è accaduto.
 \item[I segnali non trasportano informazione] 
@@ -2377,14 +2376,14 @@ vengono chiamati \textsl{segnali real-time}, in particolare:
 \begin{itemize*}
 \item i segnali sono inseriti in una coda che permette di consegnare istanze
   multiple dello stesso segnale qualora esso venga inviato più volte prima
-  dell'esecuzione del manipolatore; si assicura così che il processo riceva un
+  dell'esecuzione del gestore; si assicura così che il processo riceva un
   segnale per ogni occorrenza dell'evento che lo genera.
 \item è stata introdotta una priorità nella consegna dei segnali: i segnali
   vengono consegnati in ordine a seconda del loro valore, partendo da quelli
   con un numero minore, che pertanto hanno una priorità maggiore.
 \item è stata introdotta la possibilità di restituire dei dati al
-  manipolatore, attraverso l'uso di un campo apposito nella struttura
-  \type{siginfo\_t} accessibile tramite manipolatori di tipo
+  gestore, attraverso l'uso di un campo apposito nella struttura
+  \type{siginfo\_t} accessibile tramite gestori di tipo
   \var{sa\_sigaction}.
 \end{itemize*}
 
@@ -2399,15 +2398,15 @@ numero minimo e massimo associato ad un segnale real-time.
 
 I segnali con un numero più basso hanno una priorità maggiore e vengono
 consegnati per primi, inoltre i segnali real-time non possono interrompere
-l'esecuzione di un manipolatore di un segnale a priorità più alta; la loro
-azione di default è quella di terminare il programma.  I segnali ordinari
-hanno tutti la stessa priorità, che è più alta di quella di qualunque segnale
+l'esecuzione di un gestore di un segnale a priorità più alta; la loro azione
+predefinita è quella di terminare il programma.  I segnali ordinari hanno
+tutti la stessa priorità, che è più alta di quella di qualunque segnale
 real-time.
 
 Si tenga presente che questi nuovi segnali non sono associati a nessun evento
 sepcifico (a meno di non utilizzarli, come vedremo in
 \secref{sec:file_asyncronous_io}, per l'I/O asincrono) e devono essere inviati
-esplicitamente. Tutti i segnali real-time restituiscono al manipolatore, oltre
+esplicitamente. Tutti i segnali real-time restituiscono al gestore, oltre
 ai campi \var{si\_pid} e \var{si\_uid} di \type{siginfo\_t} una struttura
 \type{sigval} (riportata in \figref{fig:sig_sigval}) in cui può essere
 restituito al processo un valore o un indirizzo, che costituisce il meccanismo
@@ -2426,7 +2425,7 @@ union sigval {
   \end{minipage} 
   \normalsize 
   \caption{La struttura \type{sigval}, usata dai segnali real time per
-    restituire dati al manipolatore.}
+    restituire dati al gestore.}
   \label{fig:sig_sigval}
 \end{figure}
 
@@ -2438,10 +2437,10 @@ funzione, \func{sigqueue}, il cui prototipo 
   {int sigqueue(pid\_t pid, int signo, const union sigval value)}
   
   Invia il segnale \param{signo} al processo \param{pid}, restituendo al
-  manipolatore il valore \param{value}.
+  gestore il valore \param{value}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EAGAIN}] La coda è esarita, ci sono già \macro{SIGQUEUE\_MAX}
     segnali in attesa si consegna.
@@ -2460,7 +2459,7 @@ stessi; un valore nullo di \func{signo} permette di verificare le condizioni
 di errore senza inviare nessun segnale.
 
 Se il segnale è bloccato la funzione ritorna immediatamente, se si è
-installato un manipolatore con \macro{SA\_SIGINFO} e ci sono risorse
+installato un gestore con \macro{SA\_SIGINFO} e ci sono risorse
 disponibili, vale a dire che c'è posto nella coda\footnote{la profondità della
   coda è indicata dalla costante \macro{SIGQUEUE\_MAX}, una della tante
   costanti di sistema definite dallo standard POSIX, che non abbiamo riportato
@@ -2468,7 +2467,7 @@ disponibili, vale a dire che c'
   standard, \macro{\_POSIX\_SIGQUEUE\_MAX}, è pari a 32.}, esso viene inserito
 e diventa pendente; una volta consegnato riporterà nel campo \var{si\_code} di
 \var{siginfo} il valore \macro{SI\_QUEUE} e il campo \var{si\_value} riceverà
-quanto inviato con \param{value}. Se invece si è installato un manipolatore
+quanto inviato con \param{value}. Se invece si è installato un gestore
 nella forma classica il segnale sarà generato, ma tutte le caratteristiche
 tipiche dei segnali real-time (priorità e coda) saranno perse.
 
@@ -2483,7 +2482,7 @@ meccanismi di comunicazione elementare; la prima di queste funzioni 
   Attende che uno dei segnali specificati in \param{set} sia pendente.
   
   \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EINTR}] La funzione è stata interrotta.
   \item[\macro{EINVAL}] Si è specificato un valore non valido per
@@ -2503,7 +2502,7 @@ uno.
 
 Per un funzionamento corretto la funzione richiede che alla sua chiamata i
 segnali di \param{set} siano bloccati. In caso contrario si avrebbe un
-conflitto con gli eventuali manipolatori: pertanto non si deve utilizzare per
+conflitto con gli eventuali gestori: pertanto non si deve utilizzare per
 lo stesso segnale questa funzione e \func{sigaction}. Se questo non avviene il
 comportamento del sistema è indeterminato: il segnale può sia essere
 consegnato che essere ricevuto da \func{sigwait}, il tutto in maniera non
@@ -2528,7 +2527,7 @@ relativi prototipi sono:
 
   
   \bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori già visti per
+    errore, nel qual caso \var{errno} viene impostata ai valori già visti per
     \func{sigwait}, ai quali se aggiunge, per \func{sigtimedwait}:
   \begin{errlist}
   \item[\macro{EAGAIN}] Si è superato il timeout senza che un segnale atteso
@@ -2555,13 +2554,12 @@ dover essere bloccati qualora esso non sia presente.
 L'uso di queste funzioni è principalmente associato alla gestione dei segnali
 com i thread. In genere esse vengono chiamate dal thread incaricato della
 gestione, che al ritorno della funzione esegue il codice che usualmente
-sarebbe messo nel manipolatore, per poi ripetere la chiamata per mettersi in
-attesa del segnale successivo. Questo ovviamente comporta che non devono
-essere installati manipolatori, che solo il thread di gestione deve usare
-\func{sigwait} e che, per evitare che venga eseguita l'azione di default, i
-segnali gestiti in questa maniera devono essere mascherati per tutti i thread,
-compreso quello dedicato alla gestione, che potrebbe riceverlo fra due
-chiamate successive.
+sarebbe messo nel gestore, per poi ripetere la chiamata per mettersi in attesa
+del segnale successivo. Questo ovviamente comporta che non devono essere
+installati gestori, che solo il thread di gestione deve usare \func{sigwait} e
+che, per evitare che venga eseguita l'azione predefinita, i segnali gestiti in
+questa maniera devono essere mascherati per tutti i thread, compreso quello
+dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive.
 
 %%% Local Variables: 
 %%% mode: latex
index 4c812d3945bd67e96727fa0e1a7864c2dda4fef4..b9d99e64afb8a46e54fa97de01dc9a66771fd6b3 100644 (file)
@@ -396,11 +396,12 @@ quando affronteremo il comportamento in caso di conclusioni anomale:
 Tutto questo riguarda la connessione, c'è però da tenere conto dell'effetto
 del procedimento di chiusura del processo figlio nel server (si veda quanto
 esaminato in \secref{sec:proc_termination}). In questo caso avremo l'invio del
-segnale \macro{SIGCHILD} al padre, ma dato che non si è installato un
-manipolatore e che l'azione di default per questo segnale è quella di essere
+segnale \macro{SIGCHLD} al padre, ma dato che non si è installato un
+manipolatore e che l'azione predefinita per questo segnale è quella di essere
 ignorato, non avendo predisposto la ricezione dello stato di terminazione,
-otterremo che il processo figlio entrerà nello stato di zombie, come risulterà
-ripetendo il comando \cmd{ps}:
+otterremo che il processo figlio entrerà nello stato di zombie (si riveda
+quanto illustrato in \secref{sec:sig_sigchld}), come risulterà ripetendo il
+comando \cmd{ps}:
 \begin{verbatim}
  2356 pts/0    S      0:00 ./echod
  2359 pts/0    Z      0:00 [echod <defunct>]
index 82826224f27a79c33ff241d26fa787df4222c284..11e19a69350505a74075a3e17790b834593d300e 100644 (file)
@@ -115,7 +115,7 @@ socket, per cui viene messo a zero (con l'eccezione dei \textit{raw socket}).
   Apre un socket.
   
   \bodydesc{La funzione restituisce un intero positivo se riesce, e -1 se
-    fallisce, in quest'ultimo caso la variabile \var{errno} è settata con i
+    fallisce, in quest'ultimo caso la variabile \var{errno} è impostata con i
     seguenti codici di errore:
 
   \begin{errlist}
@@ -405,9 +405,9 @@ internet di un'interfaccia pi
 prevede numeri di porta, che sono utilizzati solo dai protocolli di livello
 superiore come TCP e UDP. Questa struttura però viene usata anche per i socket
 RAW che accedono direttamente al livello di IP, nel qual caso il numero della
-porta viene settato al numero di protocollo.
+porta viene impostato al numero di protocollo.
 
-Il membro \var{sin\_family} deve essere sempre settato; \var{sin\_port}
+Il membro \var{sin\_family} deve essere sempre impostato; \var{sin\_port}
 specifica il numero di porta (vedi \secref{sec:TCPel_port_num}; i numeri di
 porta sotto il 1024 sono chiamati \textsl{riservati} in quanto utilizzati da
 servizi standard. Soltanto processi con i privilegi di root (effective uid
@@ -455,7 +455,7 @@ struct in6_addr {
   \label{fig:sock_sa_ipv6_struct}
 \end{figure}
 
-Il campo \var{sin6\_family} deve essere sempre settato ad
+Il campo \var{sin6\_family} deve essere sempre impostato ad
 \macro{AF\_INET6}, il campo \var{sin6\_port} è analogo a quello di IPv4 e
 segue le stesse regole; il campo \var{sin6\_flowinfo} è a sua volta diviso
 in tre parti di cui i 24 bit inferiori indicano l'etichetta di flusso, i
@@ -676,7 +676,7 @@ e \textit{numeric}.
 
 Entrambe le funzioni accettano l'argomento \param{af} che indica il tipo di
 indirizzo e può essere \macro{AF\_INET} o \macro{AF\_INET6}. Se la famiglia
-indicata non è valida entrambe le funzioni settano la variabile \var{errno}
+indicata non è valida entrambe le funzioni impostano la variabile \var{errno}
 al valore \macro{EAFNOSUPPORT}. I prototipi delle suddette funzioni sono i
 seguenti:
 \begin{prototype}{sys/socket.h}
@@ -698,7 +698,7 @@ seguenti:
  
   \bodydesc{La funzione restituisce un puntatore non nullo a \var{dest} in
     caso di successo e un puntatore nullo in caso di fallimento, in
-    quest'ultimo caso viene settata la variabile \var{errno} con il valore
+    quest'ultimo caso viene impostata la variabile \var{errno} con il valore
     \macro{ENOSPC} in caso le dimensioni dell'indirizzo eccedano la lunghezza
     specificata da \var{len} o \macro{ENOAFSUPPORT} in caso \var{af} non sia
     una famiglia di indirizzi valida.}
index 04d92db60aecd39c7851efcc225352d34551bede..c68686fcc5d9cfdd3d4e517f516bc04780ddd8fc 100644 (file)
@@ -162,7 +162,8 @@ file, riportate in \tabref{tab:sys_file_macro}).
     \macro{STREAM\_MAX}&   8& massimo numero di stream aperti per
                               processo in contemporanea.\\
     \macro{TZNAME\_MAX}&   6& dimensione massima del nome di una
-                              \texttt{timezone} (vedi ).\\ 
+                              \texttt{timezone} (vedi
+                              \secref{sec:sys_time_base})).\\  
     \macro{NGROUPS\_MAX}& 32& numero di gruppi supplementari per
                               processo (vedi \secref{sec:proc_access_id}).\\
     \macro{SSIZE\_MAX}&32767& valore massimo del tipo \type{ssize\_t}.\\
@@ -207,7 +208,8 @@ riportati in \tabref{tab:sys_posix1_general}.
     \macro{\_POSIX\_STREAM\_MAX} &    8& massimo numero di stream aperti per
                                          processo in contemporanea.\\
     \macro{\_POSIX\_TZNAME\_MAX} &     & dimensione massima del nome di una
-                                         \texttt{timezone} (vedi ).\\ 
+                                         \texttt{timezone} (vedi
+                                         \secref{sec:sys_date}). \\ 
     \macro{\_POSIX\_NGROUPS\_MAX}&    0& numero di gruppi supplementari per
                                          processo (vedi 
                                          \secref{sec:proc_access_id}).\\
@@ -286,7 +288,7 @@ prototipo di questa funzione 
   
   \bodydesc{La funzione restituisce indietro il valore del parametro
     richiesto, o 1 se si tratta di un'opzione disponibile, 0 se l'opzione non
-    è disponibile e -1 in caso di errore (ma \var{errno} non viene settata).}
+    è disponibile e -1 in caso di errore (ma \var{errno} non viene impostata).}
 \end{prototype}
 
 La funzione prende come argomento un intero che specifica quale dei limiti si
@@ -456,7 +458,7 @@ con la funzione \func{pathconf}, il cui prototipo 
   Restituisce il valore del parametro \param{name} per il file \param{path}.
   
   \bodydesc{La funzione restituisce indietro il valore del parametro
-    richiesto, o -1 in caso di errore (ed \var{errno} viene settata ad uno
+    richiesto, o -1 in caso di errore (ed \var{errno} viene impostata ad uno
     degli errori possibili relativi all'accesso a \param{path}).}
 \end{prototype}
 
@@ -485,7 +487,7 @@ suo prototipo 
   Restituisce informazioni sul sistema nella struttura \param{info}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-  fallimento, nel qual caso \var{errno} viene settata a \macro{EFAULT}.}
+  fallimento, nel qual caso \var{errno} viene impostata a \macro{EFAULT}.}
 \end{prototype}
 
 La funzione, che viene usata dal comando \cmd{uname}, restituisce le
@@ -552,7 +554,7 @@ Inoltre, al di la di quelli che possono essere limiti caratteristici previsti
 da uno standard, ogni sistema può avere una sua serie di altri parametri di
 configurazione, che, non essendo mai fissi e variando da sistema a sistema,
 non sono stati inclusi nella standardizzazione della sezione precedente. Per
-questi occorre, oltre al meccanismo di settaggio, pure un meccanismo di
+questi occorre, oltre al meccanismo di impostazione, pure un meccanismo di
 lettura.
 
 Affronteremo questi argomenti in questa sezione, insieme alle funzioni che si
@@ -563,9 +565,9 @@ quelle per la gestione dei filesystem e di utenti e gruppi.
 \subsection{La funzione \func{sysctl} ed il filesystem \file{/proc}}
 \label{sec:sys_sysctl}
 
-La funzione che permette la lettura ed il settaggio dei parametri del sistema
-è \func{sysctl}; è una funzione derivata da BSD4.4, ma l'implementazione è
-specifica di Linux; il suo prototipo è:
+La funzione che permette la lettura ed l'impostazione dei parametri del
+sistema è \func{sysctl}; è una funzione derivata da BSD4.4, ma
+l'implementazione è specifica di Linux; il suo prototipo è:
 \begin{functions}
 \headdecl{unistd.h}
 \headdecl{linux/unistd.h}
@@ -576,7 +578,7 @@ specifica di Linux; il suo prototipo 
 Legge o scrive uno dei parametri di sistema.
 
 \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
-  errore, nel qual caso \var{errno} viene settato ai valori:
+  errore, nel qual caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{EPERM}] il processo non ha il permesso di accedere ad uno dei
     componenti nel cammino specificato per il parametro, o non ha il permesso
@@ -586,7 +588,7 @@ Legge o scrive uno dei parametri di sistema.
   \item[\macro{EFAULT}] si è specificato \param{oldlenp} zero quando
     \param{oldval} è non nullo. 
   \item[\macro{EINVAL}] o si è specificato un valore non valido per il
-    parametro che si vuole settare o lo spazio provvisto per il ritorno di un
+    parametro che si vuole impostare o lo spazio provvisto per il ritorno di un
     valore non è delle giuste dimensioni.
   \item[\macro{ENOMEM}] talvolta viene usato più correttamente questo errore
     quando non si è specificato sufficiente spazio per ricevere il valore di un
@@ -612,7 +614,7 @@ complessa, per questo motivo il valori vengono passati come puntatori
 L'indirizzo a cui il valore corrente del parametro deve essere letto è
 specificato da \param{oldvalue}, e lo spazio ivi disponibile è specificato da
 \param{oldlenp} (passato come puntatore per avere indietro la dimensione
-effettiva di quanto letto); il valore che si vuole settare nel sistema è
+effettiva di quanto letto); il valore che si vuole impostare nel sistema è
 passato in \param{newval} e la sua dimensione in \param{newlen}.
 
 Si può effettuare anche una lettura e scrittura simultanea, nel qual caso il
@@ -750,7 +752,7 @@ significativi sono un \textit{magic number}\footnote{cio
   costante \macro{MS\_MGC\_MSK} per ottenere la parte di \param{mountflags}
   riservata al \textit{magic number}.} mentre i 16 meno significativi sono
 usati per specificare le opzioni; essi sono usati come maschera binaria e
-vanno settati con un OR aritmetico della costante \macro{MS\_MGC\_VAL} con i
+vanno impostati con un OR aritmetico della costante \macro{MS\_MGC\_VAL} con i
 valori riportati in \ntab.
 
 \begin{table}[htb]
@@ -785,7 +787,7 @@ valori riportati in \ntab.
   \label{tab:sys_mount_flags}
 \end{table}
 
-Per il settaggio delle caratteristiche particolari di ciascun filesystem si
+Per l'impostazione delle caratteristiche particolari di ciascun filesystem si
 usa invece l'argomento \param{data} che serve per passare le ulteriori
 informazioni necessarie, che ovviamente variano da filesystem a filesystem.
 
@@ -793,7 +795,7 @@ La funzione \func{mount} pu
 \textsl{rimontaggio} di un filesystem, cosa che permette di cambiarne al volo
 alcune delle caratteristiche di funzionamento (ad esempio passare da sola
 lettura a lettura/scrittura). Questa operazione è attivata attraverso uno dei
-bit di \param{mountflags}, \macro{MS\_REMOUNT}, che se settato specifica che
+bit di \param{mountflags}, \macro{MS\_REMOUNT}, che se impostato specifica che
 deve essere effettuato il rimontaggio del filesystem (con le opzioni
 specificate dagli altri bit), anche in questo caso il valore di \param{source}
 viene ignorato.
@@ -805,7 +807,7 @@ Una volta che non si voglia pi
   Smonta il filesystem montato sulla directory \param{target}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di
-    fallimento, nel qual caso \var{errno} viene settata a:
+    fallimento, nel qual caso \var{errno} viene impostata a:
   \begin{errlist}
   \item[\macro{EPERM}] il processo non ha i privilegi di amministratore.
   \item[\macro{EBUSY}]  \param{target} è la directory di lavoro di qualche
@@ -860,7 +862,7 @@ informazioni riguardo al filesystem su cui si trova un certo file, sono
   posto il file specificato.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene settato ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
   \begin{errlist}
   \item[\macro{ENOSYS}] il filesystem su cui si trova il file specificato non
   supporta la funzione.
@@ -874,7 +876,7 @@ Queste funzioni permettono di ottenere una serie di informazioni generali
 riguardo al filesystem su cui si trova il file specificato; queste vengono
 restituite una struttura \param{buf} di tipo \type{statfs} definita come in
 \ref{fig:sys_statfs}, ed i campi che sono indefiniti per il filesystem in
-esame sono settati a zero.  I valori del campo \var{f\_type} sono definiti per
+esame sono impostati a zero.  I valori del campo \var{f\_type} sono definiti per
 i vari filesystem nei relativi file di header dei sorgenti del kernel da
 costanti del tipo \macro{XXX\_SUPER\_MAGIC}, dove \macro{XXX} in genere è il
 nome del filesystem stesso.
@@ -1007,7 +1009,7 @@ essere rientranti, per cui ne esistono anche due versioni alternative
   Restituiscono le informazioni relative all'utente specificato.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e un codice d'errore
-    altrimenti, nel qual caso \var{errno} sarà settato opportunamente.}
+    altrimenti, nel qual caso \var{errno} sarà impostata opportunamente.}
 \end{functions}
 
 In questo caso l'uso è molto più complesso, in quanto bisogna prima allocare
@@ -1019,7 +1021,7 @@ campi di \param{password}. Infine all'indirizzo puntato da \param{result}
 viene restituito il puntatore ai dati ottenuti, cioè \param{buffer} nel caso
 l'utente esista, o \macro{NULL} altrimenti.  Qualora i dati non possano essere
 contenuti nei byte specificati da \param{buflen}, la funzione fallirà
-restituendo \macro{ERANGE} (e \param{result} sarà comunque settato a
+restituendo \macro{ERANGE} (e \param{result} sarà comunque impostato a
 \macro{NULL}).
 
 Del tutto analoghe alle precedenti sono le funzioni \func{getgrnam} e
@@ -1043,7 +1045,7 @@ loro prototipi sono:
   Restituiscono le informazioni relative al gruppo specificato.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e un codice d'errore
-    altrimenti, nel qual caso \var{errno} sarà settato opportunamente.}
+    altrimenti, nel qual caso \var{errno} sarà impostata opportunamente.}
 \end{functions}
 
 Il comportamento di tutte queste funzioni è assolutamente identico alle
@@ -1073,7 +1075,7 @@ struct group {
 Le funzioni viste finora sono in grado di leggere le informazioni sia dal file
 delle password in \file{/etc/passwd} che con qualunque altro metodo sia stato
 utilizzato per mantenere il database degli utenti. Non permettono però di
-settare direttamente le password; questo è possibile con un'altra interfaccia
+impostare direttamente le password; questo è possibile con un'altra interfaccia
 al database degli utenti, derivata da SVID, che però funziona soltanto con un
 database che sia tenuto su un file che abbia il formato classico di
 \file{/etc/passwd}.
@@ -1470,7 +1472,7 @@ struct rlimit {
 \end{figure}
 
 In genere il superamento di un limite comporta o l'emissione di un segnale o
-il fallimento della system call che lo ha provocato; per far leggere o settare
+il fallimento della system call che lo ha provocato; per far leggere o impostare
 i limiti di utilizzo delle risorse da parte di un processo le \acr{glibc}
 prevedono due funzioni, \func{getrlimit} e \func{setrlimit}, i cui prototipi
 sono:
@@ -1485,10 +1487,10 @@ sono:
   
   \funcdecl{int setrlimit(int resource, const struct rlimit *rlim)} 
   
-  Setta il limite per la risorsa \param{resource}.
+  Imposta il limite per la risorsa \param{resource}.
   
   \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di
-    errore, nel qual caso \var{errno} viene settata ai valori:
+    errore, nel qual caso \var{errno} viene impostata ai valori:
     \begin{errlist}
     \item[\macro{EINVAL}] I valori per \param{resource} non sono validi.
     \item[\macro{EPERM}] Un processo senza i privilegi di amministratore ha
@@ -1553,7 +1555,7 @@ specificarne i valori.
   \label{tab:sys_rlimit_values}
 \end{table}
 
-\footnotetext{Settare questo limite a zero è la maniera più semplice per
+\footnotetext{Impostare questo limite a zero è la maniera più semplice per
   evitare la creazione di \file{core} file.}
 
 È inoltre definita la costante \macro{RLIM\_INFINITY} che permette di
@@ -1831,10 +1833,10 @@ in nel suddetto formato; il suo prototipo 
 variabile su cui duplicare il valore di ritorno.
 
 Analoga a \func{time} è la funzione \func{stime} che serve per effettuare
-l'operazione inversa, e cioè per settare il tempo di sistema qualora questo
+l'operazione inversa, e cioè per impostare il tempo di sistema qualora questo
 sia necessario; il suo prototipo è:
 \begin{prototype}{time.h}{int stime(time\_t *t)}
-  Setta a \param{t} il valore corrente del \textit{calendar time}.
+  Imposta a \param{t} il valore corrente del \textit{calendar time}.
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
     che può essere \macro{EFAULT} o \macro{EPERM}.}
@@ -1863,7 +1865,7 @@ sono:
   \funcdecl{int settimeofday(const struct timeval *tv, const struct timezone
     *tz)}
   
-  Setta il tempo di sistema.
+  Imposta il tempo di sistema.
   
   \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in
     caso di errore, nel qual caso \var{errno} può assumere il valori
@@ -1906,18 +1908,18 @@ vada a modificare l'orologio di sistema, come quelle che tratteremo in
 seguito) può essere utilizzata solo da un processo coi privilegi di
 amministratore.  Il secondo parametro di entrambe le funzioni è una struttura
 \var{timezone}, che storicamente veniva utilizzata per specificare appunto la
-\textit{timezone}, cioè l'insieme del fuso orario e delle convenzioni per
+\textit{time zone}, cioè l'insieme del fuso orario e delle convenzioni per
 l'ora legale che permettevano il passaggio dal tempo universale all'ora
 locale. Questo parametro è obsoleto e in Linux non è mai stato utilizzato e
 non è supportato né dalle vecchie \textsl{libc5}, né dalle \textsl{glibc}:
-pertanto deve essere sempre settato a \macro{NULL}.
+pertanto deve essere sempre impostato a \macro{NULL}.
 
 Modificare l'orologio di sistema con queste funzioni è comunque problematico,
 in quanto esse effettuano un cambiamento immediato. Questo può creare dei
 buchi o delle ripetizioni nello scorrere dell'orologio di sistema, con
 conseguenze indesiderate; ad esempio se si porta avanti l'orologio si possono
 perdere delle esecuzioni di \cmd{cron} programmate nell'intervallo che si è
-saltato. Per questo motivo la modalità più corretta per settare l'ora è quella
+saltato. Per questo motivo la modalità più corretta per impostare l'ora è quella
 di usare la funzione \func{adjtime}, il cui prototipo è:
 \begin{prototype}{sys/time.h}
 {int adjtime(const struct timeval *delta, struct timeval *olddelta)} 
@@ -1953,7 +1955,7 @@ La funzione richiede una struttura di tipo \var{timex}, la cui definizione,
 così come effettuata in \file{sys/timex.h}, è riportata in
 \figref{fig:sys_timex_struct}. L'azione della funzione dipende dal valore del
 campo \var{mode}, che specifica quale parametro dell'orologio di sistema,
-specificato in un opportuno campo di \var{timex}, deve essere settato. Un
+specificato in un opportuno campo di \var{timex}, deve essere impostato. Un
 valore nullo serve per leggere i parametri correnti; i valori diversi da zero
 devono essere specificati come OR binario delle costanti riportate in
 \secref{tab:sys_timex_mode}.
@@ -2008,37 +2010,37 @@ essere ritrovato in \cite{glibc}.
     \textbf{Nome} & \textbf{Valore} & \textbf{Significato}\\
     \hline
     \hline
-    \macro{ADJ\_OFFSET}         & 0x0001 & Setta la differenza fra il tempo
+    \macro{ADJ\_OFFSET}         & 0x0001 & Imposta la differenza fra il tempo
                                            reale e l'orologio di sistema, che 
                                            deve essere indicata in microsecondi
                                            nel campo \var{offset} di
                                            \var{timex}.\\ 
-    \macro{ADJ\_FREQUENCY}      & 0x0002 & Setta la differenze in frequenza
+    \macro{ADJ\_FREQUENCY}      & 0x0002 & Imposta la differenze in frequenza
                                            fra il tempo reale e l'orologio di
                                            sistema, che deve essere indicata
                                            in parti per milione nel campo
                                            \var{frequency} di \var{timex}.\\
-    \macro{ADJ\_MAXERROR}       & 0x0004 & Setta il valore massimo dell'errore
+    \macro{ADJ\_MAXERROR}       & 0x0004 & Imposta il valore massimo dell'errore
                                            sul tempo, espresso in microsecondi 
                                            nel campo \var{maxerror} di
                                            \var{timex}.\\ 
-    \macro{ADJ\_ESTERROR}       & 0x0008 & Setta la stima dell'errore
+    \macro{ADJ\_ESTERROR}       & 0x0008 & Imposta la stima dell'errore
                                            sul tempo, espresso in microsecondi 
                                            nel campo \var{esterror} di
                                            \var{timex}.\\
-    \macro{ADJ\_STATUS}         & 0x0010 & Setta alcuni
+    \macro{ADJ\_STATUS}         & 0x0010 & Imposta alcuni
                                            valori di stato interni usati dal
                                            sistema nella gestione
                                            dell'orologio specificati nel campo
                                            \var{status} di \var{timex}.\\ 
-    \macro{ADJ\_TIMECONST}      & 0x0020 & Setta la larghezza di banda del PLL
+    \macro{ADJ\_TIMECONST}      & 0x0020 & Imposta la larghezza di banda del PLL
                                            implementato dal kernel,
                                            specificato nel campo
                                            \var{constant} di \var{timex}.\\ 
-    \macro{ADJ\_TICK}           & 0x4000 & Setta il valore dei tick del timer
+    \macro{ADJ\_TICK}           & 0x4000 & Imposta il valore dei tick del timer
                                            in microsecondi, espresso nel campo
                                            \var{tick} di \var{timex}.\\ 
-    \macro{ADJ\_OFFSET\_SINGLESHOT}&0x8001&Setta uno spostamento una tantum 
+    \macro{ADJ\_OFFSET\_SINGLESHOT}&0x8001&Imposta uno spostamento una tantum 
                                            dell'orologio secondo il valore del
                                            campo \var{offset} simulando il
                                            comportamento di \func{adjtime}.\\ 
@@ -2163,7 +2165,7 @@ stringa, allocata staticamente, nella forma:
 \begin{verbatim}
 "Wed Jun 30 21:49:08 1993\n"
 \end{verbatim}
-e settano anche la variabile \var{tzname} con l'informazione della \textit{time
+e impostano anche la variabile \var{tzname} con l'informazione della \textit{time
   zone} corrente; \func{ctime} è banalmente definita in termini di
 \func{asctime} come \code{asctime(localtime(t)}. Dato che l'uso di una stringa
 statica rende le funzioni non rientranti POSIX.1c e SUSv2 prevedono due
@@ -2188,13 +2190,13 @@ Come mostrato in \figref{fig:sys_tm_struct} il \textit{broken-down time}
 permette di tenere conto anche della differenza fra tempo universale e ora
 locale, compresa l'eventuale ora legale. Questo viene fatto attraverso le tre
 variabili globali mostrate in \figref{fig:sys_tzname}, cui si accede quando si
-include \file{time.h}. Queste variabili vengono settate quando si chiama una
+include \file{time.h}. Queste variabili vengono impostate quando si chiama una
 delle precedenti funzioni di conversione, oppure invocando direttamente la
 funzione \func{tzset}, il cui prototipo è:
 \begin{prototype}{sys/timex.h}
 {void tzset(void)} 
   
-  Setta le variabili globali della \textit{time zone}.
+  Imposta le variabili globali della \textit{time zone}.
   
   \bodydesc{La funzione non ritorna niente e non dà errori.}
 \end{prototype}
@@ -2343,8 +2345,8 @@ sempre riferimento a tali valori, quando descriveremo i possibili errori
 restituiti dalle funzioni. Il programma di esempio \cmd{errcode} stampa il
 codice relativo ad un valore numerico con l'opzione \cmd{-l}.
 
-Il valore di \var{errno} viene sempre settato a zero all'avvio di un
-programma, gran parte delle funzioni di libreria settano \var{errno} ad un
+Il valore di \var{errno} viene sempre impostato a zero all'avvio di un
+programma, gran parte delle funzioni di libreria impostano \var{errno} ad un
 valore diverso da zero in caso di errore. Il valore è invece indefinito in
 caso di successo, perché anche se una funzione ha successo, può chiamarne
 altre al suo interno che falliscono, modificando così \var{errno}.
@@ -2370,7 +2372,7 @@ prima funzione che si pu
   
   \bodydesc{La funzione ritorna il puntatore alla stringa col messaggio di
     errore in caso di successo e \macro{NULL} in caso di errore, nel qual caso
-    \var{errno} sarà settata a \macro{EINVAL} se si è specificato un numero di
+    \var{errno} sarà impostata a \macro{EINVAL} se si è specificato un numero di
     errore non valido.}
 \end{prototype}
 
@@ -2544,7 +2546,7 @@ Stampa un messaggio di errore formattato.
 per il fatto che, separati con il solito due punti-spazio, vengono inseriti un
 nome di file indicato da \param{fname} ed un numero di linea subito dopo la
 stampa del nome del programma. Inoltre essa usa un'altra variabile globale,
-\var{error\_one\_per\_line}, che settata ad un valore diverso da zero fa si
+\var{error\_one\_per\_line}, che impostata ad un valore diverso da zero fa si
 che errori relativi alla stessa linea non vengano ripetuti.