% LocalWords: flock shared exclusive operation dup inode linked NFS cmd ENOLCK
% LocalWords: EDEADLK whence SEEK CUR type pid GETLK SETLK SETLKW all'inode HP
% LocalWords: switch bsd lockf mandatory SVr sgid group root mount mand TRUNC
-% LocalWords: SVID UX Documentation
+% LocalWords: SVID UX Documentation sendfile
% LocalWords: gid Control List patch mandatory control execute group other all
% LocalWords: dell' effective passwd IGID locking swap saved text IRWXU IRWXG
% LocalWords: IRWXO ext reiser capability FSETID mask capabilities chroot jail
-% LocalWords: FTP
+% LocalWords: FTP Di
% LocalWords: unlocked fread fwrite size ptr nmemb nelem gcc padding point str
% LocalWords: lock thread fgetc getc getchar dell'overhead altresì unsigned ap
% LocalWords: getwc fgetwc getwchar wint wchar WEOF putc fputc putchar dell'I
-% LocalWords: SVID getw putw parsing peeking ahead ungetc gets fgets string
+% LocalWords: SVID getw putw parsing peeking ahead ungetc gets fgets string Di
% LocalWords: overflow Aleph stack fputs puts fgetws fputws getline ssize leak
% LocalWords: realloc value result argument memory getdelim delim printf short
% LocalWords: fprintf sprintf format snprintf variadic long double intmax list
% LocalWords: vscanf vfscanf vsscanf bison parser yacc like off VMS whence pos
% LocalWords: lseek ftell fgetpos fpos fseeko ftello fileno Solaris freadable
% LocalWords: fwritable ext freading fwriting buffering setvbuf BUFSIZ setbuf
-% LocalWords: IONBF IOLBF IOFBF setbuffer setlinebuf flbf fbufsize flushlbf
+% LocalWords: IONBF IOLBF IOFBF setbuffer setlinebuf flbf fbufsize flushlbf hh
% LocalWords: fsync fpurge flockfile ftrylockfile funlockfile SAFE FUNCTIONS
-% LocalWords: locking fsetlocking type BYCALLER QUERY
+% LocalWords: locking fsetlocking type BYCALLER QUERY ll
% LocalWords: EBUSY sigev SIGNAL signo value sigval siginfo all'userid MESGQ
% LocalWords: Konstantin Knizhnik futex tmpfs ramfs cache shared swap CONFIG
% LocalWords: lrt blocks PAGECACHE TRUNC CLOEXEC mmap ftruncate munmap FindShm
-% LocalWords: CreateShm RemoveShm
+% LocalWords: CreateShm RemoveShm LIBRARY
% LocalWords: clearenv libc value overwrite string reference result argument
% LocalWords: socket variadic ellipsis header stdarg execl self promoting last
% LocalWords: float double short register type dest src extern setjmp jmp buf
-% LocalWords: env return if while
+% LocalWords: env return if while sottoprocesso Di
% LocalWords: SetTermAttr UnSetTermAttr cfsetispeed cfsetospeed cfgetispeed
% LocalWords: cfgetospeed quest'ultime tcsendbreak duration break tcdrain
% LocalWords: tcflush queue TCIFLUSH TCOFLUSH TCIOFLUSH tcflow action TCOOFF
-% LocalWords: TCOON TCIOFF TCION timer openpty
+% LocalWords: TCOON TCIOFF TCION timer openpty Window nochdir
Una caratteristica particolare dei socket TCP è quella che consente di inviare
all'altro capo della comunicazione una sorta di messaggio privilegiato, che si
-richide che sia trattato il prima possibile. Si fa riferimento a questa
+richiede che sia trattato il prima possibile. Si fa riferimento a questa
funzionalità come all'invio dei cosiddetti \textsl{dati urgenti} (o
-\textit{urgent data}); tavolta essi chiamati anche dati \textit{out-of-band}
-poiché, come vedremo più anvati, possono essere letti anche al di fuori del
+\textit{urgent data}); talvolta essi chiamati anche dati \textit{out-of-band}
+poiché, come vedremo più avanti, possono essere letti anche al di fuori del
flusso di dati normale.
Come già accennato in sez.~\ref{sec:file_multiplexing} la presenza di dati
%%% End:
% LocalWords: socket of multiplexing sez sendmsg recvmsg RECVERR kernel MSG
-% LocalWords: ERRQUEUE sock err fig TCP dell'I setsockopt OPTIONS
+% LocalWords: ERRQUEUE sock err fig TCP dell'I setsockopt OPTIONS urgent poll
+% LocalWords: select descriptor exceptfds POLLRDBAND OOBINLINE ioctl all' mark
+% LocalWords: SIOCATMARK
Benché non strettamente attinenti alla gestione dei socket, vale la pena di
trattare qui l'interfaccia di accesso a basso livello ai dispositivi di rete
che viene appunto fornita attraverso la funzione \texttt{ioctl}. Questa non è
-attinente a carattestiche specifiche di un qualche protocollo, ma si applica a
+attinente a caratteristiche specifiche di un qualche protocollo, ma si applica a
tutti i socket, indipendentemente dal tipo o famiglia dello stesso, e permette
di impostare e rilevare le funzionalità delle interfacce di rete.
il primo campo della struttura, \var{ifr\_name} per specificare il nome
dell'interfaccia su cui si vuole operare (ad esempio \texttt{eth0},
\texttt{ppp0}, ecc.), e si inseriscono (o ricevono) i valori relativi alle
-diversa carateristiche e funzionalità nel secondo campo, che come si può
+diversa caratteristiche e funzionalità nel secondo campo, che come si può
notare è definito come una \ctyp{union} proprio in quanto il suo significato
varia a secondo dell'operazione scelta.
Si tenga inoltre presente che alcune di queste operazioni (in particolare
quelle che modificano le caratteristiche dell'interfaccia) sono privilegiate e
-richiedono i privilegi di amministatore o la \itindex{capabilities}
+richiedono i privilegi di amministratore o la \itindex{capabilities}
\textit{capability} \const{CAP\_NET\_ADMIN}, altrimenti si otterrà un errore
di \errval{EPERM}. Le costanti che identificano le operazioni disponibili
sono le seguenti:
% LocalWords: Documentation SIOCATMARK SIOCOUTQ FIONREAD TIOCOUTQ Denial work
% LocalWords: netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer
% LocalWords: linux NODELAY MAXSEG CORK KEEPIDLE KEEPINTVL KEEPCNT SYNCNT INFO
-% LocalWords: DEFER ACCEPT WINDOW CLAMP QUICKACK CONGESTION ENCAP urgent
+% LocalWords: DEFER ACCEPT WINDOW CLAMP QUICKACK CONGESTION ENCAP urgent MSS
+% LocalWords: Segment SYN accept advertised window info quickack Nagle ifreq
+% LocalWords: ifr ppp union EPERM SIOCGIFNAME dell' interface index IFF NOARP
+% LocalWords: SIOCGIFINDEX SIOCGIFFLAGS POINTOPOINT RUNNING PROMISC NOTRAILERS
+% LocalWords: ALLMULTI bundle PORTSEL ifmap AUTOMEDIA DYNAMIC SIOCSIFFLAGS
+% LocalWords: SIOCGIFMETRIC SIOCSIFMETRIC SIOCGIFMTU SIOCSIFMTU SIOCGIFHWADDR
+% LocalWords: SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP
+% LocalWords: SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN
+% LocalWords: SIOCSIFNAME SIOCGIFCONF
% LocalWords: all'endianess htons ntohl ntohs long hostlong hostshort netlong
% LocalWords: sort netshort host inet aton ntoa dotted decimal const char src
% LocalWords: strptr struct dest addrptr INADDR NULL pton ntop presentation af
-% LocalWords: numeric EAFNOSUPPORT size ENOSPC ENOAFSUPPORT ADDRSTRLEN
+% LocalWords: numeric EAFNOSUPPORT size ENOSPC ENOAFSUPPORT ADDRSTRLEN ROUTE
+% LocalWords: of tcpdump
% LocalWords: strftime thread EOF modifiable lvalue app errcode strerror LC at
% LocalWords: perror string errnum MESSAGES error message ErrCode strtol log
% LocalWords: program invocation argv printf print progname exit count fname
-% LocalWords: lineno one standardese
+% LocalWords: lineno one standardese Di
possono utilizzare questi valori per far si che \func{select} ritorni solo
quando c'è la certezza di avere dati a sufficienza.\footnote{questo tipo di
controllo è utile di norma solo per la lettura, in quanto in genere le
- operazioni di scrittura sono già controllate dall'applicazione, che sà
+ operazioni di scrittura sono già controllate dall'applicazione, che sa
sempre quanti dati invia, mentre non è detto possa conoscere la quantità di
dati in ricezione; per cui, nella situazione in cui si conosce almeno un
valore minimo, per evitare la penalizzazione dovuta alla ripetizione delle
% LocalWords: SNDLOWAT third fset maxfd fileno ISSET closed how SHUT RD WR eof
% LocalWords: RDWR fifo Trip ping fourth CLR sull'I SETSIZE nread break Denial
% LocalWords: Service poll POLLIN POLLRDNORM POLLPRI POLLRDBAND POLLOUT events
-% LocalWords: POLLHUP POLLERR revents pollfd
+% LocalWords: POLLHUP POLLERR revents pollfd Di
%%% Local Variables:
%%% mode: latex