X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=socket.tex;h=2e34e78d3bdeaaa3bab7428c8740310ecc3b36ec;hp=fa70b6d800a1094109394212b3c1d2ef866ad107;hb=853abb8180764f5c24c9338164c4479c4d94ba2a;hpb=9b0f636834e8d92e87131bbb99d7d846bab1421a diff --git a/socket.tex b/socket.tex index fa70b6d..2e34e78 100644 --- a/socket.tex +++ b/socket.tex @@ -817,7 +817,7 @@ riveda quanto detto in \secref{sec:ipc_pipes}). \begin{lstlisting}{} #include -ssize_t SockRead(int fd, void *buf, size_t count) +ssize_t FullRead(int fd, void *buf, size_t count) { size_t nleft; ssize_t nread; @@ -839,17 +839,17 @@ ssize_t SockRead(int fd, void *buf, size_t count) return (count - nleft); } \end{lstlisting} - \caption{Funzione \func{SockRead}, legge \var{count} byte da un socket } - \label{fig:sock_SockRead_code} + \caption{Funzione \func{FullRead}, legge \var{count} byte da un socket } + \label{fig:sock_FullRead_code} \end{figure} Per questo motivo, seguendo l'esempio di W. R. Stevens in \cite{UNP1}, si sono -definite due funzioni \func{SockRead} e \func{SockWrite} che eseguono la +definite due funzioni \func{FullRead} e \func{FullWrite} che eseguono la lettura da un socket tenendo conto di questa caratteristica, ed in grado di ritornare dopo avere letto o scritto esattamente il numero di byte -specificato; il sorgente è riportato in \figref{fig:sock_SockRead_code} e -\figref{fig:sock_SockWrite_code} ed è disponibile fra i sorgenti allegati alla -guida nei files \file{SockRead.c} e \file{SockWrite.c}. +specificato; il sorgente è riportato in \figref{fig:sock_FullRead_code} e +\figref{fig:sock_FullWrite_code} ed è disponibile fra i sorgenti allegati alla +guida nei files \file{FullRead.c} e \file{FullWrite.c}. \begin{figure}[htb] \centering @@ -857,7 +857,7 @@ guida nei files \file{SockRead.c} e \file{SockWrite.c}. \begin{lstlisting}{} #include -ssize_t SockWrite(int fd, const void *buf, size_t count) +ssize_t FullWrite(int fd, const void *buf, size_t count) { size_t nleft; ssize_t nwritten; @@ -877,8 +877,8 @@ ssize_t SockWrite(int fd, const void *buf, size_t count) return (count); } \end{lstlisting} - \caption{Funzione \func{SockWrite}, scrive \var{count} byte su un socket.} - \label{fig:sock_SockWrite_code} + \caption{Funzione \func{FullWrite}, scrive \var{count} byte su un socket.} + \label{fig:sock_FullWrite_code} \end{figure} Come si può notare le funzioni ripetono la lettura/scrittura in un ciclo fino