From: Simone Piccardi Date: Thu, 12 Jan 2012 23:06:30 +0000 (+0000) Subject: Note sulla lunghezza della lista degli argomenti. X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=e011018a1a14d4ccf41e95f7fe277bde11145a59;p=gapil.git Note sulla lunghezza della lista degli argomenti. --- diff --git a/prochand.tex b/prochand.tex index 933a828..e859104 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1419,7 +1419,10 @@ da \param{argv} e come ambiente la lista di stringhe indicata da \param{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 -\code{main(int argc, char *argv[], char *envp[])}. +\code{main(int argc, char *argv[], char *envp[])}. Si tenga presente per il +passaggio degli argomenti e dell'ambiente esistono comunque dei limiti, su cui +torneremo in sez.~\ref{sec:sys_res_limits}). +% TODO aggiungere la parte sul numero massimo di argomenti, da man execve In caso di successo la funzione non ritorna, in quanto al posto del programma chiamante viene eseguito il nuovo programma indicato da \param{filename}. Se @@ -1427,8 +1430,6 @@ il processo corrente è tracciato con \func{ptrace} (vedi sez.~\ref{sec:process_ptrace}) in caso di successo viene emesso il segnale \signal{SIGTRAP}. -% TODO aggiungere la parte sul numero massimo di argomenti, da man execve - Le altre funzioni della famiglia (\funcd{execl}, \funcd{execv}, \funcd{execle}, \funcd{execlp}, \funcd{execvp}) servono per fornire all'utente una serie di possibili diverse interfacce nelle modalità di passaggio degli @@ -1500,9 +1501,8 @@ che deve essere terminata da un puntatore nullo. In entrambi i casi vale la convenzione che il primo argomento (\var{arg0} o \var{argv[0]}) viene usato per indicare il nome del file che contiene il programma che verrà eseguito. - \begin{figure}[!htb] - \centering \includegraphics[width=12cm]{img/exec_rel} + \centering \includegraphics[width=10cm]{img/exec_rel} \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.} \label{fig:proc_exec_relat} \end{figure} diff --git a/system.tex b/system.tex index 2786f61..9330f4f 100644 --- a/system.tex +++ b/system.tex @@ -1221,6 +1221,8 @@ essere aumentato dal processo stesso durante l'esecuzione, ciò può però esser fatto solo fino al valore del secondo, che per questo viene detto \textit{hard limit}. +%TODO: tabella troppo grossa, trasformare in lista + \begin{table}[htb] \footnotesize \centering @@ -1317,6 +1319,14 @@ fatto solo fino al valore del secondo, che per questo viene detto \textit{hard limite è solo una indicazione per il kernel, qualora ci fosse un surplus di memoria questa verrebbe assegnata.\\ +% TODO: aggiungere a \const{RLIMIT\_STACK} i dati di execve: +% Questi fino al kernel 2.6.23 erano fissi e costituiti da +% 32 pagine di memoria (corrispondenti per la gran parte delle architetture a +% 128kb di dati). Dal 2.6.23 su molte architettire il limite viene stabilito in +% base al valore della risorsa \const{RLIMIT\_STACK} (vedi +% sez.~\ref{sec:sys_resource_limit}), ad un quarto dello spazio da essa +% indicato). Dal 2.6.25 viene comunque garantito uno spazio base di 32 pagine. + % TODO integrare con la roba di madvise % TODO integrare con le ultime aggiunte, vedi pagina di manuale \hline