X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=7a7bef4ed98671626d36f22576cda6ceb15d57c5;hp=e50895c68b5c0cb2bf6419854b9481370ca82c69;hb=cdc1b275bbd83ad0dbf1ba4be801118724a51085;hpb=2110eb3a139f7fafc2ca2e5175f15ef6128ae347 diff --git a/prochand.tex b/prochand.tex index e50895c..7a7bef4 100644 --- a/prochand.tex +++ b/prochand.tex @@ -965,10 +965,11 @@ accessibili definendo la costante \macro{\_USE\_BSD}, sono: \funcdecl{pid\_t wait4(pid\_t pid, int * status, int options, struct rusage * rusage)} È identica a \func{waitpid} sia per comportamento che per i - valori dei parametri, ma restituisce in \var{rusage} un sommario delle + valori dei parametri, ma restituisce in \param{rusage} un sommario delle risorse usate dal processo (per i dettagli vedi \secref{sec:sys_xxx}) + \funcdecl{pid\_t wait3(int *status, int options, struct rusage *rusage)} - Prima versione, equivalente a \func{wait4(-1, \&status, opt, rusage)} è + Prima versione, equivalente a \code{wait4(-1, \&status, opt, rusage)} è ormai deprecata in favore di \func{wait4}. \end{functions} \noindent @@ -1064,7 +1065,7 @@ e come ambiente la lista di stringhe indicata da \var{envp}; entrambe le liste devono essere terminate da un puntatore nullo. I vettori degli argomenti e dell'ambiente possono essere acceduti dal nuovo programma quando la sua funzione \func{main} è dichiarata nella forma -\func{main(int argc, char *argv[], char *envp[])}. +\code{main(int argc, char *argv[], char *envp[])}. Le altre funzioni della famiglia servono per fornire all'utente una serie possibile di diverse interfacce per la creazione di un nuovo processo. I loro @@ -1093,7 +1094,7 @@ le modalit argomenti a linea di comando (cioè i valori di \var{argv} e \var{argc} visti dalla funzione \func{main} del programma chiamato). -Queste modalità sono due e sono riassunte dagli mnenonici \func{v} e \func{l} +Queste modalità sono due e sono riassunte dagli mnenonici \code{v} e \code{l} che stanno rispettivamente per \textit{vector} e \textit{list}. Nel primo caso gli argomenti sono passati tramite il vettore di puntatori \var{argv[]} a stringhe terminate con zero che costituiranno gli argomenti a riga di comando, @@ -1136,7 +1137,7 @@ per indicare il nome del file che contiene il programma che verr \end{table} La seconda differenza fra le funzioni riguarda le modalità con cui si -specifica il programma che si vuole eseguire. Con lo mnemonico \func{p} si +specifica il programma che si vuole eseguire. Con lo mnemonico \code{p} si indicano le due funzioni che replicano il comportamento della shell nello specificare il comando da eseguire; quando il parametro \var{file} non contiene una \file{/} esso viene considerato come un nome di programma, e @@ -1160,7 +1161,7 @@ indicato dal parametro \var{path}, che viene interpretato come il \end{figure} La terza differenza è come viene passata la lista delle variabili di ambiente. -Con lo mnemonico \func{e} vengono indicate quelle funzioni che necessitano di +Con lo mnemonico \code{e} vengono indicate quelle funzioni che necessitano di un vettore di parametri \var{envp[]} analogo a quello usato per gli argomenti a riga di comando (terminato quindi da un \macro{NULL}), le altre usano il valore della variabile \var{environ} (vedi \secref{sec:proc_environ}) del @@ -1473,7 +1474,7 @@ situazione degli identificatori \end{eqnarray*} in questo modo, dato che l'\textit{effective group id} è quello giusto, il programma può accedere a \file{/var/log/utmp} in scrittura ed aggiornarlo, a -questo punto il programma può eseguire una \func{setgid(getgid())} per settare +questo punto il programma può eseguire una \code{setgid(getgid())} per settare l'\textit{effective group id} a quello dell'utente (e dato che il \textit{real group id} corrisponde la funzione avrà successo), in questo modo non sarà possibile lanciare dal terminale programmi che modificano detto file, in tal @@ -1487,7 +1488,7 @@ caso infatti la situazione degli identificatori sarebbe: e ogni processo lanciato dal terminale avrebbe comunque \acr{gid} come \textit{effective group id}. All'uscita dal terminale, per poter di nuovo aggiornare lo stato di \file{/var/log/utmp} il programma eseguirà una -\func{setgid(utmp)} (dove \var{utmp} è il valore numerico associato al gruppo +\code{setgid(utmp)} (dove \var{utmp} è il valore numerico associato al gruppo \acr{utmp}, ottenuto ad esempio con una \func{getegid}), dato che in questo caso il valore richiesto corrisponde al \textit{saved group id} la funzione avrà successo e riporterà la situazione a: @@ -1808,7 +1809,7 @@ esempio utilizzano variabili statiche, le \acr{glibc} per disposizione due macro di compilatore, \macro{\_REENTRANT} e \macro{\_THREAD\_SAFE}, la cui definizione attiva le versioni rientranti di varie funzioni di libreria, che sono identificate aggiungendo il suffisso -\func{\_r} al nome della versione normale. +\code{\_r} al nome della versione normale.