Ancora reindicizzazioni, più CLONE_VFORK, CLONE_VM, CLONE_PTRACED
[gapil.git] / intro.tex
index f18cc3a3018d2138fe714ebfbfea38e83f6ae28c..2157e74a0187a4c502432d003081b22284ffaa04 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -555,16 +555,21 @@ alle directory indicate nel \textit{pathname} (torneremo su questo
 sez.~\ref{sec:file_access_control}) dovranno consentire l'accesso all'intero
 \textit{pathname}.
 
+\itindsubbeg{pathname}{assoluto}
+\itindsubbeg{pathname}{relativo}
+
 Se il \textit{pathname} comincia con il carattere ``\texttt{/}'' la ricerca
 parte dalla directory radice del processo. Questa, a meno di non avere
 eseguito una \func{chroot} (funzione su cui torneremo in
 sez.~\ref{sec:file_chroot}) è la stessa per tutti i processi ed equivale alla
 directory radice dell'albero dei file montata dal kernel all'avvio del
-sistema; in questo caso si parla di un \textsl{pathname assoluto}
-\itindsub{pathname}{assoluto}.  Altrimenti la ricerca parte dalla directory di
-lavoro corrente del processo (su cui torneremo in
-sez.~\ref{sec:file_work_dir}) ed il \textit{pathname} è detto
-\itindsub{pathname}{relativo} \textsl{pathname relativo}.
+sistema; in questo caso si parla di un \textsl{pathname assoluto}. Altrimenti
+la ricerca parte dalla directory di lavoro corrente del processo (su cui
+torneremo in sez.~\ref{sec:file_work_dir}) ed il \textit{pathname} è detto
+\textsl{pathname relativo}.
+
+\itindsubend{pathname}{assoluto}
+\itindsubend{pathname}{relativo}
 
 Infine i nomi di directory ``\file{.}'' e ``\file{..}'' hanno un significato
 speciale e vengono inseriti in ogni directory quando questa viene creata (vedi
@@ -573,12 +578,12 @@ corrente e il secondo alla directory \textsl{genitrice} (o \textit{parent
   directory}) cioè la directory che contiene il riferimento alla directory
 corrente.
 
-In questo modo con ``\file{..}'' si può usare un \itindsub{pathname}{relativo}
-\textit{pathname} relativo per indicare un file posto al di sopra della
-directory corrente, tornando all'indietro nell'albero dei file.  Questa
-retromarcia però su fermerà una volta raggiunta la directory radice, perché
-non esistendo in questo caso una directory superiore, il nome ``\file{..}''
-farà riferimento alla radice stessa.
+In questo modo con ``\file{..}'' si può usare un \textit{pathname} relativo
+per indicare un file posto al di sopra della directory corrente, tornando
+all'indietro nell'albero dei file.  Questa retromarcia però su fermerà una
+volta raggiunta la directory radice, perché non esistendo in questo caso una
+directory superiore, il nome ``\file{..}''  farà riferimento alla radice
+stessa.
 
 \itindend{pathname}
 \itindend{pathname~resolution}
@@ -682,7 +687,7 @@ VMS.\footnote{questo vale anche per i dispositivi a blocchi: la strutturazione
   attraverso un filesystem, il cosiddetto \textit{raw access}, introdotto coi
   kernel della serie 2.4.x ma ormai in sostanziale disuso.}
 
-\index{file!di~dispositivo|}
+\index{file!di~dispositivo|)}
 \index{file!speciali|)} 
 
 Una differenza che attiene ai contenuti di un file però esiste, ed è relativa
@@ -1229,18 +1234,18 @@ Le macro disponibili per controllare l'aderenza ai vari standard messi a
 disposizione della \acr{glibc}, che rendono disponibili soltanto le funzioni
 in essi definite, sono illustrate nel seguente elenco:
 \begin{basedescript}{\desclabelwidth{2.7cm}\desclabelstyle{\nextlinelabel}}
-\item[\macro{\_\_STRICT\_ANSI\_\_}] richiede l'aderenza stretta allo standard
+\item[\macrod{\_\_STRICT\_ANSI\_\_}] richiede l'aderenza stretta allo standard
   C ISO; viene automaticamente predefinita qualora si invochi il \texttt{gcc}
   con le opzione \texttt{-ansi} o \texttt{-std=c99}.
 
-\item[\macro{\_POSIX\_SOURCE}] definendo questa macro (considerata obsoleta)
+\item[\macrod{\_POSIX\_SOURCE}] definendo questa macro (considerata obsoleta)
   si rendono disponibili tutte le funzionalità dello standard POSIX.1 (la
   versione IEEE Standard 1003.1) insieme a tutte le funzionalità dello
   standard ISO C. Se viene anche definita con un intero positivo la macro
   \macro{\_POSIX\_C\_SOURCE} lo stato di questa non viene preso in
   considerazione.
 
-\item[\macro{\_POSIX\_C\_SOURCE}] definendo questa macro ad un valore intero
+\item[\macrod{\_POSIX\_C\_SOURCE}] definendo questa macro ad un valore intero
   positivo si controlla quale livello delle funzionalità specificate da POSIX
   viene messa a disposizione; più alto è il valore maggiori sono le
   funzionalità:
@@ -1266,7 +1271,7 @@ in essi definite, sono illustrate nel seguente elenco:
   \item in futuro valori superiori potranno abilitare ulteriori estensioni.
   \end{itemize}
 
-\item[\macro{\_BSD\_SOURCE}] definendo questa macro si rendono disponibili le
+\item[\macrod{\_BSD\_SOURCE}] definendo questa macro si rendono disponibili le
   funzionalità derivate da BSD4.3, insieme a quelle previste dagli standard
   ISO C, POSIX.1 e POSIX.2; alcune delle funzionalità previste da BSD sono
   però in conflitto con le corrispondenti definite nello standard POSIX.1, in
@@ -1292,14 +1297,14 @@ in essi definite, sono illustrate nel seguente elenco:
   \macro{\_DEFAULT\_SOURCE} che è definita di default, è stata deprecata a
   partire dalle \acr{glibc} 2.20.
 
-\item[\macro{\_SVID\_SOURCE}] definendo questa macro si rendono disponibili le
+\item[\macrod{\_SVID\_SOURCE}] definendo questa macro si rendono disponibili le
   funzionalità derivate da SVID. Esse comprendono anche quelle definite negli
   standard ISO C, POSIX.1, POSIX.2, e X/Open (XPG$n$) illustrati in
   precedenza. Questa macro, essendo ricompresa in \macro{\_DEFAULT\_SOURCE}
   che è definita di default, è stata deprecata a partire dalle \acr{glibc}
   2.20.
 
-\item[\macro{\_DEFAULT\_SOURCE}] questa macro abilita le definizioni
+\item[\macrod{\_DEFAULT\_SOURCE}] questa macro abilita le definizioni
   considerate il \textit{default}, comprese quelle richieste dallo standard
   POSIX.1-2008, ed è sostanzialente equivalente all'insieme di
   \macro{\_SVID\_SOURCE}, \macro{\_BSD\_SOURCE} e
@@ -1310,7 +1315,7 @@ in essi definite, sono illustrate nel seguente elenco:
   dalle \acr{glibc} 2.19 e consente di deprecare \macro{\_SVID\_SOURCE} e
   \macro{\_BSD\_SOURCE}.
 
-\item[\macro{\_XOPEN\_SOURCE}] definendo questa macro si rendono disponibili
+\item[\macrod{\_XOPEN\_SOURCE}] definendo questa macro si rendono disponibili
   le funzionalità descritte nella \textit{X/Open Portability Guide}. Anche
   queste sono un sovrainsieme di quelle definite negli standard POSIX.1 e
   POSIX.2 ed in effetti sia \macro{\_POSIX\_SOURCE} che
@@ -1332,14 +1337,14 @@ in essi definite, sono illustrate nel seguente elenco:
     estensioni XSI.
   \end{itemize}
 
-\item[\macro{\_XOPEN\_SOURCE\_EXTENDED}] definendo questa macro si rendono
+\item[\macrod{\_XOPEN\_SOURCE\_EXTENDED}] definendo questa macro si rendono
   disponibili le ulteriori funzionalità necessarie ad essere conformi al
   rilascio del marchio \textit{X/Open Unix} corrispondenti allo standard
   Unix95, vale a dire quelle specificate da SUSv1/XPG4v2. Questa macro viene
   definita implicitamente tutte le volte che si imposta
   \macro{\_XOPEN\_SOURCE} ad un valore maggiore o uguale a 500.
 
-\item[\macro{\_ISOC99\_SOURCE}] definendo questa macro si rendono disponibili
+\item[\macrod{\_ISOC99\_SOURCE}] definendo questa macro si rendono disponibili
   le funzionalità previste per la revisione delle librerie standard del C
   introdotte con lo standard ISO C99. La macro è definita a partire dalla
   versione 2.1.3 della \acr{glibc}. 
@@ -1351,13 +1356,13 @@ in essi definite, sono illustrate nel seguente elenco:
   viene tuttora riconosciuta come equivalente di \macro{\_ISOC99\_SOURCE} per
   compatibilità.
 
-\item[\macro{\_ISOC11\_SOURCE}] definendo questa macro si rendono disponibili
+\item[\macrod{\_ISOC11\_SOURCE}] definendo questa macro si rendono disponibili
   le funzionalità previste per la revisione delle librerie standard del C
   introdotte con lo standard ISO C11, e abilita anche quelle previste dagli
   standard C99 e C95. La macro è definita a partire dalla versione 2.16 della
   \acr{glibc}.
 
-\item[\macro{\_GNU\_SOURCE}] definendo questa macro si rendono disponibili
+\item[\macrod{\_GNU\_SOURCE}] definendo questa macro si rendono disponibili
   tutte le funzionalità disponibili nei vari standard oltre a varie estensioni
   specifiche presenti solo nella \acr{glibc} ed in Linux. Gli standard coperti
   sono: ISO C89, ISO C99, POSIX.1, POSIX.2, BSD, SVID, X/Open, SUS.
@@ -1391,14 +1396,14 @@ una opportuna macro; queste estensioni sono illustrate nel seguente elenco:
 
 \begin{basedescript}{\desclabelwidth{2.7cm}\desclabelstyle{\nextlinelabel}}
 
-\item[\macro{\_LARGEFILE\_SOURCE}] definendo questa macro si rendono
+\item[\macrod{\_LARGEFILE\_SOURCE}] definendo questa macro si rendono
   disponibili alcune funzioni che consentono di superare una inconsistenza
   presente negli standard con i file di grandi dimensioni, ed in particolare
   definire le due funzioni \func{fseeko} e \func{ftello} che al contrario
   delle corrispettive \func{fseek} e \func{ftell} usano il tipo di dato
   specifico \ctyp{off\_t} (vedi sez.~\ref{sec:file_io}).
 
-\item[\macro{\_LARGEFILE64\_SOURCE}] definendo questa macro si rendono
+\item[\macrod{\_LARGEFILE64\_SOURCE}] definendo questa macro si rendono
   disponibili le funzioni di una interfaccia alternativa al supporto di valori
   a 64 bit nelle funzioni di gestione dei file (non supportati in certi
   sistemi), caratterizzate dal suffisso \texttt{64} aggiunto ai vari nomi di
@@ -1414,7 +1419,7 @@ una opportuna macro; queste estensioni sono illustrate nel seguente elenco:
   di \texttt{64} consente di usare in maniera trasparente le funzioni
   dell'interfaccia classica.
 
-\item[\macro{\_FILE\_OFFSET\_BITS}] la definizione di questa macro al valore
+\item[\macrod{\_FILE\_OFFSET\_BITS}] la definizione di questa macro al valore
   di \texttt{64} consente di attivare la conversione automatica di tutti i
   riferimenti a dati e funzioni a 32 bit nelle funzioni di interfaccia ai file
   con le equivalenti a 64 bit, senza dover utilizzare esplicitamente
@@ -1430,13 +1435,13 @@ una opportuna macro; queste estensioni sono illustrate nel seguente elenco:
   dimensioni. Su sistemi a 64 bit invece, dove il problema non sussiste, la
   macro non ha nessun effetto.
 
-\item[\macro{\_ATFILE\_SOURCE}] definendo questa macro si rendono disponibili
+\item[\macrod{\_ATFILE\_SOURCE}] definendo questa macro si rendono disponibili
   le estensioni delle funzioni di creazione, accesso e modifica di file e
   directory che risolvono i problemi di sicurezza insiti nell'uso di
   \textit{pathname} relativi con programmi \textit{multi-thread} illustrate in
   sez.~\ref{sec:file_openat}.
 
-\item[\macro{\_REENTRANT}] definendo questa macro, o la equivalente
+\item[\macrod{\_REENTRANT}] definendo questa macro, o la equivalente
   \macro{\_THREAD\_SAFE} (fornita per compatibilità) si rendono disponibili le
   versioni rientranti (vedi sez.~\ref{sec:proc_reentrant}) di alcune funzioni,
   necessarie quando si usano i \textit{thread}.  Alcune di queste funzioni
@@ -1444,7 +1449,7 @@ una opportuna macro; queste estensioni sono illustrate nel seguente elenco:
   disponibili soltanto su alcuni sistemi, o specifiche della \acr{glibc}, e
   possono essere utilizzate una volta definita la macro.
 
-\item[\macro{\_FORTIFY\_SOURCE}] definendo questa macro viene abilitata
+\item[\macrod{\_FORTIFY\_SOURCE}] definendo questa macro viene abilitata
   l'inserimento di alcuni controlli per alcune funzioni di allocazione e
   manipolazione di memoria e stringhe che consentono di rilevare
   automaticamente alcuni errori di \textit{buffer overflow} nell'uso delle