X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=system.tex;h=228905ebca6b50dd5c7a91275e0be372c4dc0c1a;hb=88d22f4971adcbdb816c405a1375ae0a8d57bdde;hp=127095d603400be6e07b647da4ee324d274337a9;hpb=3f50b8e3fd683f710e34a88436109157d328e1b6;p=gapil.git diff --git a/system.tex b/system.tex index 127095d..228905e 100644 --- a/system.tex +++ b/system.tex @@ -774,9 +774,9 @@ La struttura usata da entrambe le funzioni è allocata staticamente, per questo motivo viene sovrascritta ad ogni nuova invocazione, lo stesso dicasi per la memoria dove sono scritte le stringhe a cui i puntatori in essa contenuti fanno riferimento. Ovviamente questo implica che dette funzioni non possono -essere \index{funzioni!rientranti} rientranti; per questo motivo ne esistono -anche due versioni alternative (denotate dalla solita estensione \code{\_r}), -i cui prototipi sono: +essere rientranti; per questo motivo ne esistono anche due versioni +alternative (denotate dalla solita estensione \code{\_r}), i cui prototipi +sono: \begin{funcproto}{ \fhead{pwd.h} @@ -836,8 +836,8 @@ i loro prototipi sono: \end{funcproto} Come per le precedenti per gli utenti esistono anche le analoghe versioni -\index{funzioni!rientranti} rientranti che di nuovo utilizzano la stessa -estensione \code{\_r}; i loro prototipi sono: +rientranti che di nuovo utilizzano la stessa estensione \code{\_r}; i loro +prototipi sono: \begin{funcproto}{ \fhead{grp.h} @@ -898,23 +898,19 @@ di utenti e gruppi, con il formato classico di \conffile{/etc/passwd} e \hline \funcm{fgetpwent} & Legge una voce dal file di registro degli utenti specificato.\\ - \funcm{fgetpwent\_r}& Come la precedente, ma \index{funzioni!rientranti} - rientrante.\\ + \funcm{fgetpwent\_r}& Come la precedente, ma rientrante.\\ \funcm{putpwent} & Immette una voce in un file di registro degli utenti.\\ \funcm{getpwent} & Legge una voce da \conffile{/etc/passwd}.\\ - \funcm{getpwent\_r} & Come la precedente, ma \index{funzioni!rientranti} - rientrante.\\ + \funcm{getpwent\_r} & Come la precedente, ma rientrante.\\ \funcm{setpwent} & Ritorna all'inizio di \conffile{/etc/passwd}.\\ \funcm{endpwent} & Chiude \conffile{/etc/passwd}.\\ \funcm{fgetgrent} & Legge una voce dal file di registro dei gruppi specificato.\\ - \funcm{fgetgrent\_r}& Come la precedente, ma \index{funzioni!rientranti} - rientrante.\\ + \funcm{fgetgrent\_r}& Come la precedente, ma rientrante.\\ \funcm{putgrent} & Immette una voce in un file di registro dei gruppi.\\ \funcm{getgrent} & Legge una voce da \conffile{/etc/group}.\\ - \funcm{getgrent\_r} & Come la precedente, ma \index{funzioni!rientranti} - rientrante.\\ + \funcm{getgrent\_r} & Come la precedente, ma rientrante.\\ \funcm{setgrent} & Ritorna all'inizio di \conffile{/etc/group}.\\ \funcm{endgrent} & Chiude \conffile{/etc/group}.\\ \hline @@ -1132,11 +1128,10 @@ hanno lo stesso identico comportamento. Per completezza viene definita anche Come già visto in sez.~\ref{sec:sys_user_group}, l'uso di strutture allocate staticamente rende le funzioni di lettura dei dati appena illustrate non -\index{funzioni!rientranti} rientranti. Per questo motivo le \acr{glibc} -forniscono anche delle versioni \index{funzioni!rientranti} rientranti: -\func{getutent\_r}, \func{getutid\_r}, \func{getutline\_r}, che invece di -restituire un puntatore restituiscono un intero e prendono due argomenti -aggiuntivi, i rispettivi prototipi sono: +rientranti. Per questo motivo le \acr{glibc} forniscono anche delle versioni +rientranti: \func{getutent\_r}, \func{getutid\_r}, \func{getutline\_r}, che +invece di restituire un puntatore restituiscono un intero e prendono due +argomenti aggiuntivi, i rispettivi prototipi sono: \begin{funcproto}{ \fhead{utmp.h} @@ -1156,10 +1151,9 @@ aggiuntivi, i rispettivi prototipi sono: \end{funcproto} Le funzioni si comportano esattamente come le precedenti analoghe non -\index{funzioni!rientranti} rientranti, solo che restituiscono il risultato -all'indirizzo specificato dal primo argomento aggiuntivo \param{buffer} mentre -il secondo, \param{result)} viene usato per restituire il puntatore al buffer -stesso. +rientranti, solo che restituiscono il risultato all'indirizzo specificato dal +primo argomento aggiuntivo \param{buffer} mentre il secondo, \param{result)} +viene usato per restituire il puntatore al buffer stesso. Infine le \acr{glibc} forniscono altre due funzioni, \funcd{updwtmp} e \funcd{logwtmp}, come estensione per scrivere direttamente delle voci nel file @@ -2722,9 +2716,8 @@ a \func{tzset} (che vedremo a breve), in modo che la data espressa tenga conto del fuso orario. In realtà \func{ctime} è banalmente definita in termini di \func{asctime} come \code{asctime(localtime(t)}. -Dato che l'uso di una stringa statica rende le funzioni non -\index{funzioni!rientranti} rientranti POSIX.1c e SUSv2 prevedono due -sostitute \index{funzioni!rientranti} rientranti, il cui nome è al solito +Dato che l'uso di una stringa statica rende le funzioni non rientranti +POSIX.1c e SUSv2 prevedono due sostitute rientranti, il cui nome è al solito ottenuto aggiungendo un \code{\_r}, che prendono un secondo argomento \code{char *buf}, in cui l'utente deve specificare il buffer su cui la stringa deve essere copiata (deve essere di almeno 26 caratteri). @@ -2761,12 +2754,11 @@ effettua una chiamata preventiva a \func{tzset}. Anche in questo caso le due funzioni restituiscono l'indirizzo di una struttura allocata staticamente, per questo sono state definite anche altre -due versioni \index{funzioni!rientranti} rientranti (con la solita estensione -\code{\_r}), che prevedono un secondo argomento \code{struct tm *result}, -fornito dal chiamante, che deve preallocare la struttura su cui sarà -restituita la conversione. La versione rientrante di \func{localtime} però non -effettua la chiamata preventiva a \func{tzset} che deve essere eseguita a cura -dell'utente. +due versioni rientranti (con la solita estensione \code{\_r}), che prevedono +un secondo argomento \code{struct tm *result}, fornito dal chiamante, che deve +preallocare la struttura su cui sarà restituita la conversione. La versione +rientrante di \func{localtime} però non effettua la chiamata preventiva a +\func{tzset} che deve essere eseguita a cura dell'utente. Infine \func{mktime} esegue la conversione di un \textit{broken-down time} a partire da una struttura \struct{tm} restituendo direttamente un valore di @@ -3053,10 +3045,9 @@ La funzione \func{strerror} utilizza una stringa statica che non deve essere modificata dal programma; essa è utilizzabile solo fino ad una chiamata successiva a \func{strerror} o \func{perror} e nessun'altra funzione di libreria tocca questa stringa. In ogni caso l'uso di una stringa statica rende -la funzione non \index{funzioni!rientranti} rientrante, per cui nel caso si -usino i \itindex{thread} \textit{thread} la \acr{glibc} fornisce una apposita -versione \index{funzioni!rientranti} rientrante \funcd{strerror\_r}, il cui -prototipo è: +la funzione non rientrante, per cui nel caso si usino i \itindex{thread} +\textit{thread} la \acr{glibc} fornisce una apposita versione rientrante +\funcd{strerror\_r}, il cui prototipo è: \begin{funcproto}{ \fhead{string.h}