Exec (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: accenti e modifiche minori
Riga 28:
:<code>int execvpe(const char *path, const char *const *argv, const char *const *envp);</code>
 
Il primo argomento, path che vediamo in ciascuno degli exec*, specifica il pathname del file da eseguire come processo figlio. Gli argomenti arg0,...,argN sono una lista di puntatori agli argomenti da passare al processo figlio; argv è un array di puntatori agli argomenti. L'argomento envp e'è invece un array di puntatori alla configurazione dell'ambiente attuale. Le chiamate execle, execlpe, execve ed execvpe (ovvero quelle con il suffisso 'e'), alterano l'ambiente del loro processo figlio, passando una lista con le configurazioni d'ambiente per l'appunto tramite l'argomento envp (array di puntatori a caratteri).
 
=== Funzioni e nomi ===
Riga 124:
}
 
=== execl ===
 
==== esempio ====
Riga 139:
}
 
''Osservazioni'': Ci si potrebbe chiedere come mai dopo execl, ci sia una [[printf]] che segnala un errore, ed un'uscita che richiama un po' l'attenzione, ma bisogna pensare che execl elimina il programma originale sovrascrivendolo con quello passato come parametro. Quindi le istruzioni che seguono la chiamata ad execl, verranno eseguite solo se non sono state sovrascritte dal nuovo programma, cioè solo se si e'è verificato un errore durante l'esecuzione, e il controllo è stato ripassato al chiamante (execl).
 
=== execv ===
 
==== esempio ====
Riga 156:
}
 
''Osservazioni'': Come prima le istruzioni che seguono la chiamata ad execv, verranno eseguite solo se non sono state sovrascritte dal nuovo programma, cioè solo se si e'è verificato un errore durante l'esecuzione, e il controllo è stato ripassato al chiamante (execv).
 
=== execlp ===