inviati i dati in uscita (sempre nel caso della shell, è associato all'uscita
del terminale, e quindi alla scrittura sullo schermo). Il terzo è lo
\textit{standard error}, su cui viene inviato l'output relativo agli errori,
-ed è anch'esso associato all'uscita del termininale. Lo standard POSIX.1
+ed è anch'esso associato all'uscita del terminale. Lo standard POSIX.1
provvede tre costanti simboliche, definite nell'header \file{unistd.h}, al
posto di questi valori numerici:
\begin{table}[htb]
valore specifica anche una modalità di operazione (vedi sotto), e
comporta che \func{open} ritorni immediatamente (l'opzione ha senso
solo per le fifo, torneremo questo in \secref{sec:ipc_named_pipe}). \\
- \const{O\_NOCTTY} & se \param{pathname} si riferisce ad un device di
+ \const{O\_NOCTTY} & se \param{pathname} si riferisce ad un dispositivo di
terminale, questo non diventerà il terminale di controllo, anche se il
processo non ne ha ancora uno (si veda \secref{sec:sess_ctrl_term}). \\
\const{O\_SHLOCK} & opzione di BSD, acquisisce uno shared lock (vedi
file con un nome univoco e la funzione \func{link} per verificarne
l'esistenza (vedi \secref{sec:ipc_file_lock}).}
-\footnotetext[3]{\textit{Denial of Service}, si chiamano così attacchi miranti
- ad impedire un servizio causando una qualche forma di carico eccessivo per
- il sistema, che resta bloccato nelle risposte all'attacco.}
+\footnotetext[3]{\textit{Denial of Service}\index{DoS}, si chiamano così
+ attacchi miranti ad impedire un servizio causando una qualche forma di
+ carico eccessivo per il sistema, che resta bloccato nelle risposte
+ all'attacco.}
\footnotetext[4]{il problema è che NFS non supporta la scrittura in append, ed
il kernel deve simularla, ma questo comporta la possibilità di una race
diventa così possibile associare un file (o una pipe) allo standard input o
allo standard output (torneremo sull'argomento in \secref{sec:ipc_pipe_use},
quando tratteremo le pipe). Per fare questo in genere occorre prima chiudere
-il file che si vuole sostituire, cossicché il suo file descriptor possa esser
+il file che si vuole sostituire, cosicché il suo file descriptor possa esser
restituito alla chiamata di \func{dup}, come primo file descriptor
disponibile.
la sintassi \code{fnctl(oldfd, F\_DUPFD, newfd)} e se si usa 0 come valore per
\param{newfd} diventa equivalente a \func{dup}.
-La sola differenza fra le due funzioni\footnote{a parte la sistassi ed i
+La sola differenza fra le due funzioni\footnote{a parte la sintassi ed i
diversi codici di errore.} è che \func{dup2} chiude il file descriptor
\param{newfd} se questo è già aperto, garantendo che la duplicazione sia
effettuata esattamente su di esso, invece \func{fcntl} restituisce il primo
descriptor, che non riguardano la normale lettura e scrittura di dati, ma la
gestione sia delle loro proprietà, che di tutta una serie di ulteriori
funzionalità che il kernel può mettere a disposizione.\footnote{ad esempio si
- gesticono con questa funzione l'I/O asincrono (vedi
+ gestiscono con questa funzione l'I/O asincrono (vedi
\secref{sec:file_asyncronous_io}) e il file locking\index{file!locking}
(vedi \secref{sec:file_locking}).}
Si tenga presente infine che quando si usa la funzione per determinare le
modalità di accesso con cui è stato aperto il file (attraverso l'uso del
-comando \const{F\_GETFL}) è necessario estrarre i bit corripondenti nel
+comando \const{F\_GETFL}) è necessario estrarre i bit corrispondenti nel
\textit{file status flag} che si è ottenuto. Infatti la definizione corrente
di quest'ultimo non assegna bit separati alle tre diverse modalità
\const{O\_RDONLY}, \const{O\_WRONLY} e \const{O\_RDWR}.\footnote{in Linux