el programa se detiene después de execvp (command.argv [0], command.argv)
Estoy escribiendo un pequeño programa shell que toma un comando y lo ejecuta. Si el usuario ingresa un comando no válido, la instrucción if devuelve un -1. Si el comando es correcto, ejecuta el comando, sin embargo, una vez que ejecuta el comando, el programa finaliza. ¿Qué estoy haciendo mal que no ejecuta las líneas de código después de eso? He probado execvp (command.argv [0], command.argv) con los comandos ls y cat, así que estoy bastante seguro de que funciona. Aquí está mi código.
<code> int shell(char *cmd_str ){ int commandLength=0; cmd_t command; commandLength=make_cmd(cmd_str, command); cout<< commandLength<<endl; cout << command.argv[0]<< endl; if( execvp( command.argv[0], command.argv)==-1) //if the command it executed nothing runs after this line { commandLength=-1; }else { cout<<"work"<<endl; } cout<< commandLength<<endl; return commandLength; } </code>