Errori
[gapil.git] / prochand.tex
index f8c99f2f6fee9b6263852139c93ceebd10845c34..780db5198e5610888fb803ef0da13ef46916188a 100644 (file)
@@ -994,15 +994,10 @@ creato un nuovo processo, la funzione semplicemente rimpiazza lo stack, o
 heap, i dati ed il testo del processo corrente con un nuovo programma letto da
 disco. 
 
-Con \func{exec} si chiude il cerchio delle funzioni su cui si basa il
-controllo dei processi in unix: con \func{fork} si crea un nuovo processo, con
-\func{exec} si avvia un nuovo programma, con \func{exit} e\func{wait} si
-effettua e si gestisce la conclusione dei programmi.
-
 Ci sono sei diverse versioni di \func{exec} (per questo la si è chiamata
 famiglia di funzioni) che possono essere usate per questo compito, che in
 realtà (come mostrato in \figref{fig:proc_exec_relat}), costituiscono un
-front-end a \func{execve}. Il suo prototipo è:
+front-end a \func{execve}. Il prototipo  di quest'utiltima è:
 
 \begin{prototype}{unistd.h}
 {int execve(const char * filename, char * const argv [], char * const envp[])}
@@ -1022,19 +1017,29 @@ front-end a \func{execve}. Il suo prototipo 
     montato in \cmd{noexec}, oppure non è un file normale o un interprete.
   \item \macro{EPERM} il file ha i bit \acr{suid} o \acr{sgid} ma l'utente non
     è root o il filesystem è montato con \cmd{nosuid}, oppure
-  \item \macro{ENOEXEC} 
-  \item \macro{ENOENT} 
-  \item \macro{ENOTDIR} 
-  \item \macro{ETXTBSY} 
-  \item \macro{ENFILE} 
-  \item \macro{EMFILE} 
-  \item \macro{EINVAL} 
-  \item \macro{EISDIR} 
-  \item \macro{ELIBBAD} 
+  \item \macro{ENOEXEC} il file è in un formato non eseguibile o non
+    riconosciuto come tale, o compilato per un'altra architettura.
+  \item \macro{ENOENT} il file o una delle librerie dinamiche o l'inteprete
+    necessari per eseguirlo non esistono.
+  \item \macro{ETXTBSY} L'eseguibile è aperto in scrittura da uno o più
+    processi. 
+  \item \macro{EINVAL} L'eseguibile ELF ha più di un segmento
+    \macro{PF\_INTERP}, cioè chiede di essere eseguito da più di un interprete.
+  \item \macro{ELIBBAD} Un interprete ELF non è in un formato  riconoscibile.
   \end{errlist}
-  ed inoltre anche \macro{EFAULT}, \macro{ENOMEM}, \macro{EIO}, \macro{ENAMETOOLONG}, \macro{E2BIG}, \macro{ELOOP}.
+  ed inoltre anche \macro{EFAULT}, \macro{ENOMEM}, \macro{EIO},
+  \macro{ENAMETOOLONG}, \macro{E2BIG}, \macro{ELOOP}, \macro{ENOTDIR},
+  \macro{ENFILE}, \macro{EMFILE}.
 \end{prototype}
 
+Le altre funzioni della famiglia servono per fornire all'utente una serie
+possibile di diverse interfacce per la creazione di un nuovo processo. 
+
+
+Con \func{exec} si chiude il cerchio delle funzioni su cui si basa il
+controllo dei processi in unix: con \func{fork} si crea un nuovo processo, con
+\func{exec} si avvia un nuovo programma, con \func{exit} e \func{wait} si
+effettua e si gestisce la conclusione dei programmi.
 
 
 \section{Il controllo di accesso}