从外壳输入C++重定向 我确信这是一个简单的问题,但是在C++中创建模拟壳时,项目的一个方面我不太理解。p>
基本上,我们正在创建一个名为myShell的程序,通过命令./myShell调用。这将打开自定义shell,但我希望能够做到的是,使用token-c直接从命令调用外部函数 例如,命令:./myShell-cls-l将调用linuxls函数。我可以在实际调用程序后执行此操作,但不能在打开./myShell,然后键入ls-l之前执行从外壳输入C++重定向 我确信这是一个简单的问题,但是在C++中创建模拟壳时,项目的一个方面我不太理解。p>,c++,linux,shell,input,io-redirection,C++,Linux,Shell,Input,Io Redirection,基本上,我们正在创建一个名为myShell的程序,通过命令./myShell调用。这将打开自定义shell,但我希望能够做到的是,使用token-c直接从命令调用外部函数 例如,命令:./myShell-cls-l将调用linuxls函数。我可以在实际调用程序后执行此操作,但不能在打开./myShell,然后键入ls-l之前执行 我不熟悉流程,希望您能提供帮助。您的代码可以等待用户输入,解释从用户处读取的命令,运行这些命令,然后返回到循环中等待用户输入,如以下伪代码: int main(int
我不熟悉流程,希望您能提供帮助。您的代码可以等待用户输入,解释从用户处读取的命令,运行这些命令,然后返回到循环中等待用户输入,如以下伪代码:
int main(int argc, char *argv[]) {
bool must_exit = false;
while (!must_exit) {
string input = read_user_input();
must_exit = interpret_and_run(input);
}
return 0;
}
修改函数以连接argv,并在进入循环之前运行它们:
int main(int argc, char *argv[]) {
bool must_exit = false;
if (argc > 2 && !strcmp(argv[1], "-c")) {
string input = concatenate(argv); // From 1 to N, not from 0 to N
must_exit = interpret_and_run(input);
}
while (!must_exit) {
string input = read_user_input();
must_exit = interpret_and_run(input);
}
return 0;
}
目前这一点太模糊了。什么是阻碍您的具体技术问题?太好了。正是我需要的。