[ Foro de C ]
Buenas, soy un poco novato en esto de la programación. Estoy con C intentando ejecutar otro programa, un .exe pasando un parámetro, desde un programa mío.
He estado mirando y no estoy seguro si debo utilizar execl: Estoy intentándolo tal que así, pero no lanza el otro programa. ¿Alguien que sepa cómo hacerlo?
char parametro[10] = "123";
execl("C:\archivo\prueba.exe", parametro);
El error en tu código es que el último parámetro que le pasas como argumento debe ser NULL.
Hay varias soluciones a este ejercicio, a continuación te planteo dos de ellas:
char*argumentos[3] = {"123", NULL};
execv(".\prueba.exe", argumentos);
o bien
execl(".\prueba.exe","123", NULL);
Digamos que execv se usa cuando tu no sabes la cantidad de argumentos que se le van a pasar a la función, digamos que su uso es dinámico. Y execl se usa cuando tu sabes exactamente los parámetros que se le van a pasar, pero al final es a gusto del programador.
Un saludo y espero que te sea de ayuda.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)