programa pára após execvp (command.argv [0], command.argv)
Eu estou escrevendo um pequeno programa de shell que recebe um comando e o executa. Se o usuário inserir um comando não válido, a instrução if retornará um -1. Se o comando estiver correto, ele executa o comando, no entanto, uma vez executado, o comando termina. O que estou fazendo de errado que não executa as linhas de código depois disso? Eu testei execvp (command.argv [0], command.argv) com comandos ls e cat, então tenho certeza que funciona. Aqui está o meu 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>