Riordinati riferimenti al close-on-exec.
[gapil.git] / ipc.tex
diff --git a/ipc.tex b/ipc.tex
index bb1c18e02e17ab0b570e12fc70a16f367976f2ab..ddf28dcc8d0bb66d855a64b9b5ea8d228a361557 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1,6 +1,6 @@
 %% ipc.tex
 %%
-%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2019 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -221,9 +221,9 @@ Per realizzare quanto voluto useremo in sequenza i programmi \cmd{barcode} e
 \cmd{gs}, il primo infatti è in grado di generare immagini PostScript di
 codici a barre corrispondenti ad una qualunque stringa, mentre il secondo
 serve per poter effettuare la conversione della stessa immagine in formato
-JPEG. Usando una \textit{pipe} potremo inviare l'output del primo sull'input del
-secondo, secondo lo schema mostrato in fig.~\ref{fig:ipc_pipe_use}, in cui la
-direzione del flusso dei dati è data dalle frecce continue.
+JPEG. Usando una \textit{pipe} potremo inviare l'output del primo sull'input
+del secondo, secondo lo schema mostrato in fig.~\ref{fig:ipc_pipe_use}, in cui
+la direzione del flusso dei dati è data dalle frecce continue.
 
 Si potrebbe obiettare che sarebbe molto più semplice salvare il risultato
 intermedio su un file temporaneo. Questo però non tiene conto del fatto che un
@@ -369,8 +369,7 @@ La funzione restituisce il puntatore ad uno stream associato alla
   input}) in caso di \code{w}. A partire dalla versione 2.9 della \acr{glibc}
 (questa è una estensione specifica di Linux) all'argomento \param{type} può
 essere aggiunta la lettera ``\texttt{e}'' per impostare automaticamente il
-flag di \textit{close-on-exec} sul file descriptor sottostante (si ricordi
-quanto spiegato in sez.~\ref{sec:file_open_close}).
+flag di \textit{close-on-exec} sul file descriptor sottostante.
 
 Lo \textit{stream} restituito da \func{popen} è identico a tutti gli effetti
 ai \textit{file stream} visti in sez.~\ref{sec:files_std_interface}, anche se
@@ -1397,7 +1396,7 @@ riguarda gli altri campi invece:
 %   primo e ultimo messaggio sono inizializzati a \val{NULL} e
 %   \var{msg\_cbytes}, che esprime la dimensione in byte dei messaggi presenti è
 %   inizializzato a zero. Questi campi sono ad uso interno dell'implementazione
-%   e non devono essere utilizzati da programmi in user space).
+%   e non devono essere utilizzati da programmi in \textit{user space}).
 \end{itemize*}
 
 Una volta creata una coda di messaggi le operazioni di controllo vengono
@@ -2140,7 +2139,7 @@ i seguenti:
   \param{semnum} dell'insieme \param{semid} (corrispondente al campo
   \var{sempid} di \struct{sem}). Va invocata con tre argomenti.  Occorre avere
   il permesso di lettura.
-\item[\constd{GETVAL}] Restituisce come valore di ritorno della funzione il il
+\item[\constd{GETVAL}] Restituisce come valore di ritorno della funzione il 
   valore corrente del semaforo \param{semnum} dell'insieme \param{semid}
   (corrispondente al campo \var{semval} di \struct{sem}). Va invocata con tre
   argomenti.  Occorre avere il permesso di lettura.
@@ -2304,7 +2303,7 @@ un valore nullo di \var{sem\_num}.
 
 Il campo \var{sem\_flg} è un flag, mantenuto come maschera binaria, per il
 quale possono essere impostati i due valori \const{IPC\_NOWAIT} e
-\constd{SEM\_UNDO}.  Impostando \const{IPC\_NOWAIT} si fa si che in tutti quei
+\constd{SEM\_UNDO}.  Impostando \const{IPC\_NOWAIT} si fa sì che in tutti quei
 casi in cui l'esecuzione di una operazione richiederebbe di porre il processo
 vada nello stato di \textit{sleep}, invece di bloccarsi \func{semop} ritorni
 immediatamente (abortendo così le eventuali operazioni restanti) con un errore
@@ -2780,10 +2779,9 @@ si ha a cuore la portabilità. Questi comandi aggiuntivi sono:
   salvata su disco dal meccanismo della memoria virtuale. Come illustrato in
   sez.~\ref{sec:proc_mem_lock} fino al kernel 2.6.9 solo l'amministratore
   poteva utilizzare questa capacità,\footnote{che richiedeva la
-    \textit{capability} \const{CAP\_IPC\_LOCK}.} a partire dal dal kernel
-  2.6.10 anche gli utenti normali possono farlo fino al limite massimo
-  determinato da \const{RLIMIT\_MEMLOCK} (vedi
-  sez.~\ref{sec:sys_resource_limit}).
+    \textit{capability} \const{CAP\_IPC\_LOCK}.} a partire dal kernel 2.6.10
+  anche gli utenti normali possono farlo fino al limite massimo determinato da
+  \const{RLIMIT\_MEMLOCK} (vedi sez.~\ref{sec:sys_resource_limit}).
 \item[\constd{SHM\_UNLOCK}] Disabilita il \textit{memory locking} sul segmento
   di memoria condivisa.  Fino al kernel 2.6.9 solo l'amministratore poteva
   utilizzare questo comando in corrispondenza di un segmento da lui bloccato.
@@ -2869,9 +2867,9 @@ riferiti all'indirizzo di partenza del segmento).
 
 L'argomento \param{shmflg} permette di cambiare il comportamento della
 funzione; esso va specificato come maschera binaria, i bit utilizzati al
-momento sono sono tre e sono identificati dalle costanti \const{SHM\_RND},
+momento sono tre e sono identificati dalle costanti \const{SHM\_RND},
 \const{SHM\_RDONLY} e \const{SHM\_REMAP} che vanno combinate con un OR
-aritmetico.  
+aritmetico.
 
 Specificando \constd{SHM\_RND} si evita che \func{shmat} ritorni un errore
 quando \param{shmaddr} non è allineato ai confini di una pagina. Si può quindi
@@ -3554,6 +3552,8 @@ sez.~\ref{sec:ipc_sysv_shm} che possa restituisca i risultati via rete.
 % TODO: con il kernel 3.17 è stata introdotta una fuunzionalità di
 % sigillatura dei file mappati in memoria e la system call memfd
 % (capire se va messo qui o altrove) vedi: http://lwn.net/Articles/593918/
+% col 5.1 aggiunta a memfd F_SEAL_FUTURE_WRITE, vedi 
+% https://git.kernel.org/linus/ab3948f58ff8 e https://lwn.net/Articles/782511/
 
 
 \section{L'intercomunicazione fra processi di POSIX}
@@ -4399,9 +4399,9 @@ sincronizzazione completamente nuovo, basato sui cosiddetti \textit{futex} (la
 sigla sta per \textit{fast user mode mutex}) con il quale è stato possibile
 implementare una versione nativa dei semafori POSIX.  Grazie a questo con i
 kernel della serie 2.6 e le nuove versioni della \acr{glibc} che usano questa
-nuova infrastruttura per quella che viene che viene chiamata \textit{New Posix
-  Thread Library}, sono state implementate anche tutte le funzioni
-dell'interfaccia dei semafori POSIX.
+nuova infrastruttura per quella che viene chiamata \textit{New Posix Thread
+  Library}, sono state implementate anche tutte le funzioni dell'interfaccia
+dei semafori POSIX.
 
 Anche in questo caso è necessario appoggiarsi alla libreria per le estensioni
 \textit{real-time} \texttt{librt}, questo significa che se si vuole utilizzare