\end{functions}
La funzione richiede di mappare in memoria la sezione del file \param{fd} a
-partire da \param{offset} per \param{lenght} byte, preferibilmente
+partire da \param{offset} per \param{length} byte, preferibilmente
all'indirizzo \param{start}. Il valore di \param{offset} deve essere un
multiplo della dimensione di una pagina di memoria.
bordo della pagina successiva.
In questo caso è possibile accedere a quella zona di memoria che eccede le
-dimensioni specificate da \param{lenght}, senza ottenere un \const{SIGSEGV}
+dimensioni specificate da \param{length}, senza ottenere un \const{SIGSEGV}
poiché essa è presente nello spazio di indirizzi del processo, anche se non è
mappata sul file. Il comportamento del sistema è quello di restituire un
valore nullo per quanto viene letto, e di non riportare su file quanto viene
La sezione di memoria sulla quale si intendono fornire le indicazioni deve
essere indicata con l'indirizzo iniziale \param{start} e l'estensione
-\param{lenght}, il valore di \param{start} deve essere allineato,
+\param{length}, il valore di \param{start} deve essere allineato,
mentre \param{length} deve essere un numero positivo.\footnote{la versione di
- Linux consente anche un valore nullo per \param{lenght}, inoltre se una
+ Linux consente anche un valore nullo per \param{length}, inoltre se una
parte dell'intervallo non è mappato in memoria l'indicazione viene comunque
applicata alle restanti parti, anche se la funzione ritorna un errore di
\errval{ENOMEM}.} L'indicazione viene espressa dall'argomento \param{advice}
\bodydesc{La funzione ritorna 0 in caso di successo e $-1$ in caso di
errore, nel qual caso \var{errno} assumerà uno dei valori seguenti:
\begin{errlist}
- \item[\errcode{ENOMEM}] o \param{addr} + \param{lenght} eccede la dimensione
+ \item[\errcode{ENOMEM}] o \param{addr} + \param{length} eccede la dimensione
della memoria usata dal processo o l'intervallo di indirizzi specificato
non è mappato.
\item[\errcode{EINVAL}] \param{addr} non è un multiplo delle dimensioni di
fig.~\ref{fig:proc_envirno_list}.
\begin{figure}[htb]
\centering
- \includegraphics[width=15 cm]{img/environ_var}
+% \includegraphics[width=15 cm]{img/environ_var}
+ \begin{tikzpicture}[>=stealth]
+ \draw (2,3.5) node {\textsf{Environment pointer}};
+ \draw (6,3.5) node {\textsf{Environment list}};
+ \draw (10.5,3.5) node {\textsf{Environment string}};
+ \draw (0.5,2.5) rectangle (3.5,3);
+ \draw (2,2.75) node {\texttt{environ}};
+ \draw [->] (3.5,2.75) -- (4.5,2.75);
+ \draw (4.5,2.5) rectangle (7.5,3);
+ \draw (6,2.75) node {\texttt{environ[0]}};
+ \draw (4.5,2) rectangle (7.5,2.5);
+ \draw (6,2.25) node {\texttt{environ[1]}};
+ \draw (4.5,1.5) rectangle (7.5,2);
+ \draw (4.5,1) rectangle (7.5,1.5);
+ \draw (4.5,0.5) rectangle (7.5,1);
+ \draw (4.5,0) rectangle (7.5,0.5);
+ \draw (6,0.25) node {\texttt{NULL}};
+ \draw [->] (7.5,2.75) -- (8.5,2.75);
+ \draw (8.5,2.75) node[right] {\texttt{HOME=/home/piccardi}};
+ \draw [->] (7.5,2.25) -- (8.5,2.25);
+ \draw (8.5,2.25) node[right] {\texttt{PATH=:/bin:/usr/bin}};
+ \draw [->] (7.5,1.75) -- (8.5,1.75);
+ \draw (8.5,1.75) node[right] {\texttt{SHELL=/bin/bash}};
+ \draw [->] (7.5,1.25) -- (8.5,1.25);
+ \draw (8.5,1.25) node[right] {\texttt{EDITOR=emacs}};
+ \draw [->] (7.5,0.75) -- (8.5,0.75);
+ \draw (8.5,0.75) node[right] {\texttt{OSTYPE=linux-gnu}};
+ \end{tikzpicture}
\caption{Esempio di lista delle variabili di ambiente.}
\label{fig:proc_envirno_list}
\end{figure}