2012-02-03 11 views
5

Io uso execv anziché execl. Per utilizzare execv, creo un array e inserisco argomenti che uso con execl. Poi ho messo questo array in execvQual è la differenza tra execl ed execv?

So che devo usare una serie di argomenti per execv ma perché? Qual è la differenza tra execl e execv?

risposta

6

Non c'è altra differenza oltre al formato degli argomenti. Entrambi finiranno per chiamare la stessa chiamata di sistema sottostante execve().

+0

Perché abbiamo bisogno di modificare il formato degli argomenti? Voglio dire se stanno facendo la stessa cosa –

+2

La chiamata di sistema 'execve()' (e 'execv()') prende gli argomenti in una matrice. 'execl()' viene fornito solo per comodità, nel caso in cui si abbia un numero fisso di argomenti, per consentire di evitare il problema di configurare un array. 'execl()' memorizzerà gli argomenti della funzione in un array temporaneo stesso e quindi effettuerà la chiamata di sistema. Se si imposta l'array argomento da solo, non è necessario per 'execl()'. – mark4o

Problemi correlati