Aar*_*ron 1 c++ operating-system execvp
我正在编写一个小shell程序,它接受一个命令并执行它.如果用户输入无效命令,则if语句返回-1.如果命令正确则执行命令,但是一旦执行命令,程序就会结束.我做错了什么不会在它之后执行代码行?我用ls和cat命令测试了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;
}
Run Code Online (Sandbox Code Playgroud)