X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=fileadv.tex;h=9980d895a06ce42c75840ee22a1aff8f3f75dd21;hb=1bdb3c6f5316edaf8e9943a99c210ecc0ec70751;hp=75bc689c8237e264686baaf65720a0b69211c13d;hpb=3fce8d71dc08554143eaf3613f27289337950ef2;p=gapil.git diff --git a/fileadv.tex b/fileadv.tex index 75bc689..9980d89 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -211,7 +211,7 @@ negativo indica un'attesa indefinita). \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ @@ -405,9 +405,10 @@ di thread. Al momento\footnote{fino ai kernel della serie 2.4.x, nella serie di I/O, che prevede anche l'introduzione di un nuovo layer per l'I/O asincrono (effettuato a partire dal 2.5.32).} esiste una sola versione stabile di questa interfaccia, quella delle \acr{glibc}, che รจ realizzata -completamente in user space. Esistono comunque vari progetti sperimentali -(come il KAIO della SGI, o i patch di Benjamin La Haise) che prevedono un -supporto diretto da parte del kernel. +completamente in user space, ed accessibile linkando i programmi con la +libreria \file{librt}. Esistono comunque vari progetti sperimentali (come il +KAIO della SGI, o i patch di Benjamin La Haise) che prevedono un supporto +diretto da parte del kernel. Lo standard prevede che tutte le operazioni di I/O asincrono siano controllate attraverso l'uso di una apposita struttura \struct{aiocb} (il cui nome sta per @@ -420,7 +421,7 @@ disponibilit \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct aiocb { int aio_fildes; /* File descriptor. */ @@ -470,7 +471,7 @@ esse. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct sigevent { sigval_t sigev_value; @@ -817,7 +818,7 @@ il secondo, \var{iov\_len}, la dimensione dello stesso. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct iovec { __ptr_t iov_base; /* Starting address */ size_t iov_len; /* Length in bytes */ @@ -1511,12 +1512,12 @@ regione bloccata. \begin{figure}[!bht] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct flock { short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ + short int l_whence; /* Where `l_start' is relative to (like `lseek').*/ off_t l_start; /* Offset where the lock begins. */ - off_t l_len; /* Size of the locked area; zero means until EOF. */ + off_t l_len; /* Size of the locked area; zero means until EOF.*/ pid_t l_pid; /* Process holding the lock. */ }; \end{lstlisting}