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>

questionAnswers(3)

yourAnswerToTheQuestion