X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=ipc.tex;h=be507a5b1c3b9fe4828e1f95977b76eeffed730e;hp=6d0cb5db711bc11a64bc331ffb429fb4dfed5bba;hb=d78bf87e6d67988bd75cb18f8e74a8f4dcaaf710;hpb=5ac64ab2753cbd2198e9b5b17119134b5ef63bc6 diff --git a/ipc.tex b/ipc.tex index 6d0cb5d..be507a5 100644 --- a/ipc.tex +++ b/ipc.tex @@ -431,9 +431,10 @@ quello illustrato per le pipe in sez.~\ref{sec:ipc_pipes}. Abbiamo già visto in sez.~\ref{sec:file_mknod} le funzioni \func{mknod} e \func{mkfifo} che permettono di creare una fifo; per utilizzarne una un -processo non avrà che da aprire il relativo file speciale o in lettura o -scrittura; nel primo caso sarà collegato al capo di uscita della fifo, e dovrà -leggere, nel secondo al capo di ingresso, e dovrà scrivere. +processo non avrà che da aprire il relativo \index{file!speciale} file +speciale o in lettura o scrittura; nel primo caso sarà collegato al capo di +uscita della fifo, e dovrà leggere, nel secondo al capo di ingresso, e dovrà +scrivere. Il kernel crea una singola pipe per ciascuna fifo che sia stata aperta, che può essere acceduta contemporaneamente da più processi, sia in lettura che in @@ -727,20 +728,20 @@ dei socket in cap.~\ref{cha:socket_intro},\footnote{si tratta comunque di oggetti di comunicazione che, come le pipe, sono utilizzati attraverso dei file descriptor.} nell'ambito dell'interfaccia generale che essi forniscono per la programmazione di rete; e vedremo anche -(in~sez.~\ref{sec:sock_sa_local}) come si possono definire dei file speciali -(di tipo socket, analoghi a quello associati alle fifo) cui si accede però -attraverso quella medesima interfaccia; vale però la pena esaminare qui una -modalità di uso dei socket locali\footnote{la funzione \func{socketpair} è - stata introdotta in BSD4.4, ma è supportata in genere da qualunque sistema - che fornisca l'interfaccia dei socket.} che li rende sostanzialmente -identici ad una pipe bidirezionale. +(in~sez.~\ref{sec:sock_sa_local}) come si possono definire dei +\index{file!speciali} file speciali (di tipo socket, analoghi a quello +associati alle fifo) cui si accede però attraverso quella medesima +interfaccia; vale però la pena esaminare qui una modalità di uso dei socket +locali\footnote{la funzione \func{socketpair} è stata introdotta in BSD4.4, ma + è supportata in genere da qualunque sistema che fornisca l'interfaccia dei + socket.} che li rende sostanzialmente identici ad una pipe bidirezionale. La funzione \funcd{socketpair} infatti consente di creare una coppia di file descriptor connessi fra di loro (tramite un socket, appunto), senza dover -ricorrere ad un file speciale sul filesystem, i descrittori sono del tutto -analoghi a quelli che si avrebbero con una chiamata a \func{pipe}, con la sola -differenza è che in questo caso il flusso dei dati può essere effettuato in -entrambe le direzioni. Il prototipo della funzione è: +ricorrere ad un \index{file!speciali} file speciale sul filesystem, i +descrittori sono del tutto analoghi a quelli che si avrebbero con una chiamata +a \func{pipe}, con la sola differenza è che in questo caso il flusso dei dati +può essere effettuato in entrambe le direzioni. Il prototipo della funzione è: \begin{functions} \headdecl{sys/types.h} \headdecl{sys/socket.h}