我写一个小的shell程序,需要一个命令并执行它。 如果用户输入一个无效命令if语句返回-1。 如果命令是正确的就执行命令,但是一旦执行程序结束命令。 我在做什么错也就是将它不执行的代码行? 我曾与LS测试execvp(command.argv [0],command.argv)和猫命令,所以我敢肯定它的工作原理。 这里是我的代码。
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;
}