0

我正在尝试创建一个交互式 shell 程序,它提示用户输入命令,解析命令,然后使用子进程执行它。这是我拥有的代码,但我不确定在此 PLEAE HELP 之后该去哪里!!!!

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;


}
4

1 回答 1

0

假设shell()在一个名为 with 的子进程中运行fork(),您需要确保父进程正确等待子进程终止。请参阅wait(2)函数族。

此外,您还需要检索所述子进程的退出状态(再次参见 参考资料wait(2))。

您也可以尝试实现流重定向。假设这是一个练习,我将把关于如何实现这些东西的额外研究留给用户:)——看看dup(2).

于 2013-10-06T22:38:49.577 回答