2012-02-03 8 views
5

Yo uso execv en lugar de execl. Para usar execv, creo una matriz y pongo los argumentos que uso con execl allí. Luego puse esta matriz en execv¿Cuál es la diferencia entre execl y execv?

Sé que tengo que usar una matriz de argumentos para execv pero ¿por qué? ¿Cuál es la diferencia entre execl y execv?

Respuesta

6

No hay diferencia más que el formato de los argumentos. Ambos terminarán llamando al mismo sistema subyacente llamando al execve().

+0

¿Por qué necesitamos cambiar el formato de los argumentos? Quiero decir si están haciendo lo mismo –

+2

La llamada al sistema 'execve()' (y 'execv()' toman los argumentos en una matriz. 'execl()' solo se proporciona como una conveniencia, en caso de que tenga una cantidad fija de argumentos, para permitirle evitar el problema de configurar una matriz. 'execl()' almacenará los argumentos de la función en una matriz temporal y luego realizará la llamada al sistema. Si configura la matriz de argumentos usted mismo, entonces no necesita 'execl()'. – mark4o

Cuestiones relacionadas