From 23010d9e9a5dd36da44a8a2a89eb8bd95cb18dfa Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Mon, 5 Nov 2001 12:11:09 +0000 Subject: [PATCH] Aggiunta figura, molto provvisoria, sull'allocazione delle porte. Proseguito sui flag di open. Raggiunta quota 200 pagine ... anche se quelle utili sono meno. --- elemtcp.tex | 2 +- fileunix.tex | 53 ++++++++++++++++++++++++++++----------------- img/port_alloc.dia | Bin 0 -> 2075 bytes 3 files changed, 34 insertions(+), 21 deletions(-) create mode 100644 img/port_alloc.dia diff --git a/elemtcp.tex b/elemtcp.tex index e879c9a..cce7fc6 100644 --- a/elemtcp.tex +++ b/elemtcp.tex @@ -476,7 +476,7 @@ disposizione del kernel per gestire le relative tabelle. \begin{figure}[!htb] \centering - \includegraphics[width=10cm]{img/tcpip_overview.eps} + \includegraphics[width=10cm]{img/port_alloc.eps} \caption{Allocazione dei numeri di porta} \label{fig:TCPel_port_alloc} \end{figure} diff --git a/fileunix.tex b/fileunix.tex index 95d27af..077c659 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -252,28 +252,41 @@ nel campo \var{f\_flags} di \var{file}. \textbf{Flag} & \textbf{Descrizione} \\ \hline \hline % modailtà di accesso - \macro{O_RDONLY} & apre il file in sola lettura\\ - \macro{O_WRONLY} & apre il file in sola scrittura\\ - \macro{O_RDWR} & apre il file lettura/scrittura\\ + \macro{O\_RDONLY} & apre il file in sola lettura\\ + \macro{O\_WRONLY} & apre il file in sola scrittura\\ + \macro{O\_RDWR} & apre il file lettura/scrittura\\ \hline % modalita di apertura - \macro{O_CREAT} & \\ - \macro{O_EXCL} & \\ - \macro{O_NOCTTY} & \\ - \macro{O_NONBLOCK} & \\ - \macro{O_SHLOCK} & \\ - \macro{O_EXLOCK} & \\ - \macro{O_TRUNC} & \\ - \macro{O_NOFOLLOW} & \\ - \macro{O_DIRECTORY} & \\ - \macro{O_LARGEFILE} & \\ + \macro{O\_CREAT} & Se il file non esiste verrà creato, con le regole di + titolarità del file viste in \secref{sec:file_ownership}. \\ + \macro{O\_EXCL} & usato in congiunzione con \macro{O\_CREAT} fa sì che + l'esistenza del file diventi un errore\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}.\\ + \macro{O\_NOCTTY} & Se \var{pathname} si riferisce ad un device di + terminale, questo non diventerà il terminale di controllo, anche se il + processo non ne ha ancora uno (si veda \secref{sec:sess_xxx}).\\ + \macro{O\_SHLOCK} & \\ + \macro{O\_EXLOCK} & \\ + \macro{O\_TRUNC} & \\ + \macro{O\_NOFOLLOW} & \\ + \macro{O\_DIRECTORY} & \\ + \macro{O\_LARGEFILE} & \\ \hline % modalità di operazione - \macro{O_APPEND} & \\ - \macro{O_NONBLOCK} & \\ - \macro{O_NDELAY} & sinonimo di \macro{O_NONBLOCK}\\ - \macro{O_ASYNC} & \\ - \macro{O_FSYNC} & \\ - \macro{O_SYNC} & \\ - \macro{O_NOATIME} & \\ + \macro{O\_APPEND} & \\ + \macro{O\_NONBLOCK} & Apre il file in modalità non bloccante, questo + comporta che \func{open} ritorna immediatamente anche nei casi in cui si + sarebbe bloccata. inoltre tutte le operazioni di I/O successive restano + in modalità non bloccante, il che 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. \\ + \macro{O\_NDELAY} & sinonimo di \macro{O\_NONBLOCK}\\ + \macro{O\_ASYNC} & \\ + \macro{O\_FSYNC} & \\ + \macro{O\_SYNC} & \\ + \macro{O\_NOATIME} & \\ \hline \end{tabular} \caption{Costanti che identificano i vari flag di stato del file specificati diff --git a/img/port_alloc.dia b/img/port_alloc.dia new file mode 100644 index 0000000000000000000000000000000000000000..2acd1b2101fd946a36a2ee7b8e2dbaa1cc396578 GIT binary patch literal 2075 zcmV+$2;}!4iwFP!000001MOYgZrer>ea}}2%B#KN-ngqcc96C&1&S7E@@`NPEwiOa zVM*U!`t4ncv@B6Ko68}>cnmlQiS-P3wLF?LXNLUz<#7=Y?n9GBX>vKF#2bFO`tW%c z1)uEi+ysk(9gt+j(dFI7os;csZN|(|_kCy-Q}pa#S^Ln#QRa+z0XH@Z-(uXE>_NjJE6? zvAqnIp{bi)EYmEqL-MEP&X5Ckihno8RHHIGD4Ab<{3lh_dTtYH|}q`L3Hun#N&}l%8^P7dH2kO@r8O znPXF-&8^==d7hrQ{+l4qUNeF6^!o03>zz0^(d_t*xHaN{m4|4S-(Ei+TP}|{eC(zD zCouc>Q5H?&aNi7~BzOM2pUpoxns@!I@1j|lo%po3#~iS9TMZkXns|NOYiCfNs(n$d zT*SdsXe#r+ynICssx_`|{EbyeC;x=gyqey(JV<7NnGMbde?&<*eEEj;hJ$E!IsD7p zUZ47mtTl^3I}5Z-*B_)u^ckzqc=w|`WPCEI+cx&{gJd3u&-Rs)XO#FCoCqe*7!l39 zP17W~4wKpH+TSpv-2wJOnoc>nTTGXA-}`Qgw-~k19bT_6V|OiI@WPYLtY>*(^6S8u z^r3D(w9|3A@(tV9ahS}H&cNNp$u(-Ywd}3}TA;OMsO5Qa;Ji5H$r68F0Z8A&$9xYU zQCC3X#qCRcKuF?*bKgP$;Xd=!g&@r5e&Mq?Z00vF7Nh31{#{iYb8x?#dL&ol3DjeU zn8J~7`a`i@n&kVO73ZrVzovI4vgBsu;^#Ju=C^x2ZEjKS=45+gy=rqcakHY7`y6d@ zO>gz%=Ew&1^JEe3|Ah8p)A3+$Uo-;>2Fw)<7-2>100;(@c$|*8^};+h7B))ZzV@^| zR>kp;4+l0bO0#KX|D;P$_#Q37?ELR^5hPszgMCE;a$!{k{ zflOd{FQ6oe*9j=qC$(pUL`*_VLQI0-P0AUQBrt2Df`~2JB#G=5ZStk$5@}OI+9Z)Q zb(clau4r)XkwX21j8V>u)TwV{lp>odFFZoM!evj=slR{y^DCxQn_x0P_rUUUWm?bK`v;Jy+yF0+?geI)|>O5RIf3G#*R@|miY z>;Y_0P~|g~242RB=tsRD#0I7ShRw_4r&;l*CQa&WnRd0#kG#+`i z@Ub(e{c>&NX`}jq>IbSHM`M*%3P*jSL2E>qw#>zbCY${w)+hFtyodght<8l|3TTw# zw~@zyjZ)M)N~!8I;KLMkI!vJwqZEu%FiHW6Qrw^XN$ou>LBka45hjFnBA(S3Dt&u6 zMosqps4n$ghVcq0F6egR6%DGp_{HOTp4p2cswmy+4SV5C`5NgMp_J zyFb*!2Zn{>jc;_U*SKJV3154>Kfr+P`)xkl!$*AR5Fb=KdDW3c zp}_J8s%hb~A5dUSnB6Z^lOrHBEY`q|lO}Lb9>>8`Xs$k#2ljVvg2mN`{{cnFC@0ph F003a5_7(sD literal 0 HcmV?d00001 -- 2.30.2