RE:Ayuda con la funcion execvp
execvp reemplaza tu programa en ejecucion por el que tu le dices.
No te pongo muy bien la sintaxis, pero espero que entiendas la idea. Tendrás que revisar además la creacion de argv[]
char *argv[1];
argv[0] = "-l";
// Me queda la duda de si argv debe ser de 2 y tener "ls" y "-l"
execvp ("ls", argv);
A partir de aqui tu programa se muere, empieza a ejecutarse ls y cuando termine ls se acabó todo.
Lo habitual es hacer fork() para crear otro proceso y hacer que este llame a exec
if (fork() == 0)
{
// proceso hijo.
exec();
}
else
{
// proceso padre
...
}
Espero que te sirva de ayuda.
Se bueno.