From: Simone Piccardi Date: Sun, 11 Nov 2001 23:29:33 +0000 (+0000) Subject: Sistemate le footnotes dentro una tabella. X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=fadbc082a6f07263bc3bdccfbba52d1c9b6d9521 Sistemate le footnotes dentro una tabella. --- diff --git a/elemtcp.tex b/elemtcp.tex index 9dce854..499bcf6 100644 --- a/elemtcp.tex +++ b/elemtcp.tex @@ -935,7 +935,7 @@ funzione restituisce un nuovo socket descriptor su cui si potr effettuare la comunicazione. Se non ci sono connessioni completate il processo viene messo in attesa. Il prototipo della funzione è il seguente: \begin{prototype}{sys/socket.h} -{int listen(int sockfd, struct sockaddr *addr, socklen\_t *addrlen)} +{int accept(int sockfd, struct sockaddr *addr, socklen\_t *addrlen)} La funzione estrae la prima connessione relativa al socket \var{sockfd} in attesa sulla coda delle connessioni complete, che associa ad nuovo socket con le stesse caratteristiche di \var{sockfd} (restituito dalla funzione diff --git a/fileunix.tex b/fileunix.tex index 258eae0..7ae7ce6 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -229,12 +229,8 @@ cio titolarità del file viste in \secref{sec:file_ownership}. Il parametro \var{mode} deve essere specificato. \\ \macro{O\_EXCL} & usato in congiunzione con \macro{O\_CREAT} fa sì che - l'esistenza del file diventi un errore\protect\footnote{la man page di - \func{open} segnala che questa opzione è difettosa su NFS, e che i - programmi che la usano per stabilire un file di lock possono incorrere - in una race condition. Si consiglia come alternativa di usare un file - con un nome univoco e la funzione \func{link} per verificarne - l'esistenza.} che fa fallire \func{open} con \macro{EEXIST}. \\ + l'esistenza del file diventi un errore\protect\footnotemark\ che fa fallire + \func{open} con \macro{EEXIST}. \\ \macro{O\_NONBLOCK} & apre il file in modalità non bloccante. Questo valore specifica anche una modalità di operazione (vedi sotto), e comporta che \func{open} ritorni immediatamente (torneremo su @@ -256,10 +252,8 @@ cio opzione è ignorata. \\ \macro{O\_DIRECTORY} & se \var{pathname} non è una directory la chiamata fallisce. Questo flag è specifico di Linux ed è stato introdotto con il - kernel 2.1.126 per evitare dei DoS\protect\footnote{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} quando \func{opendir} viene chiamata su una + kernel 2.1.126 per evitare dei DoS\protect\footnotemark\ quando + \func{opendir} viene chiamata su una fifo o su un device di unità a nastri, non deve essere utilizzato al di fuori dell'implementazione di \func{opendir}. \\ \macro{O\_LARGEFILE} & nel caso di sistemi a 32 bit che supportano file di @@ -270,19 +264,14 @@ cio \macro{O\_APPEND} & il file viene aperto in append mode. Prima di ciascuna scrittura la posizione corrente viene sempre settata alla fine del file. Può causare corruzione del file con NFS se più di un processo scrive - allo stesso tempo\footnote{il problema è che NFS non supporta la scrittura - in append, ed il kernel deve simularla, ma questo comporta la possibilità - di una race condition}.\\ + allo stesso tempo\footnotemark.\\ \macro{O\_NONBLOCK} & il file viene aperto in modalità non bloccante per le operazioni di I/O: questo significa il fallimento di una \func{read} in assenza di dati da leggere e quello di una \func{write} in caso di impossibilità di scrivere immediatamente. L'opzione è effettiva solo per le fifo e per alcuni file di dispositivo. \\ - \macro{O\_NDELAY} & in Linux\footnote{l'opzione origina da SVr4, dove però - causava il ritorno da una \func{read} con un valore nullo e non con un - errore, questo introduce una ambiguità, dato che come vedremo in - \secref{sec:file_read} il ritorno di zero da parte di \func{read} ha il - significato di una end-of-file} è sinonimo di \macro{O\_NONBLOCK}.\\ + \macro{O\_NDELAY} & in Linux\footnotemark\ è sinonimo di + \macro{O\_NONBLOCK}.\\ \macro{O\_ASYNC} & apre il file per l'input/output in modalità asincrona. Non è supportato in Linux. \\ \macro{O\_SYNC} & apre il file per l'input/output sincrono, ogni @@ -300,6 +289,26 @@ cio \label{tab:file_open_flags} \end{table} +\footnotetext[2]{la man page di \func{open} segnala che questa opzione è + difettosa su NFS, e che i programmi che la usano per stabilire un file di + lock possono incorrere in una race condition. Si consiglia come alternativa + di usare un file con un nome univoco e la funzione \func{link} per + verificarne l'esistenza.} + +\footnotetext[3]{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[4]{il problema è che NFS non supporta la scrittura in append, ed + il kernel deve simularla, ma questo comporta la possibilità di una race + condition} + +\footnotetext[5]{l'opzione origina da SVr4, dove però causava il ritorno da + una \func{read} con un valore nullo e non con un errore, questo introduce + una ambiguità, dato che come vedremo in \secref{sec:file_read} il ritorno di + zero da parte di \func{read} ha il significato di una end-of-file} + + 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 @@ -353,8 +362,8 @@ prototipo Crea un nuovo file vuoto, con i permessi specificati da \var{mode}. É del tutto equivalente a \func{open(filedes, O\_CREAT|O\_WRONLY|O\_TRUNC, mode)}. \end{prototype} - -adesso questa funzione resta solo per compatibilità con i vecchi programmi. +\noindent adesso questa funzione resta solo per compatibilità con i vecchi +programmi. \subsection{La funzione \func{close}} @@ -371,7 +380,7 @@ descriptor ritorna disponibile; il suo prototipo \item \macro{EBADF} \var{fd} non è un descrittore valido. \item \macro{EINTR} la funzione è stata interrotta da un segnale. \end{errlist} - ed \macro{EIO}. + ed inoltre \macro{EIO}. \end{prototype} La chiusura di un file rilascia ogni blocco (il \textit{file locking} è @@ -425,7 +434,7 @@ un valore qualsiasi con la funzione \func{lseek}, il cui prototipo \item \macro{ESPIPE} \var{fd} è una pipe, un socket o una fifo. \item \macro{EINVAL} \var{whence} non è un valore valido. \end{errlist} - e \macro{EBADF}. + ed inoltre \macro{EBADF}. \end{functions} La nuova posizione è settata usando il valore specificato da \var{offset}, diff --git a/gapil.tex b/gapil.tex index fc23818..ee3e1a0 100644 --- a/gapil.tex +++ b/gapil.tex @@ -1,4 +1,4 @@ -%% +%% %% GaPiL : Guida alla Programmazione in Linux %% %% S. Piccardi Oct. 2000 @@ -19,7 +19,9 @@ \usepackage{listings} \lstloadlanguages{C++} \usepackage{color} -\usepackage{mdwlist} +\usepackage{mdwlist} +%\usepackage{footnote} +%\usepackage{mdwtab} % % Setting page layout %