gpt4 book ai didi

来自 shell 的 C++ 输入重定向

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:54 24 4
gpt4 key购买 nike

我确信这是一个简单的问题,但在用 C++ 创建模拟 shell 时,项目的一个方面我不太了解。

基本上,我们正在创建一个名为 myShell 的程序,使用命令“./myShell”调用。这将打开自定义 shell,但我想要做的是使用标记“-c”从命令中调用外部函数。

例如,命令:“./myShell -c ls -l”将调用linux ls 函数。我可以在实际调用程序后执行此操作,但不能在此之前执行(即打开 ./myShell,然后键入 ls -l”。

我是流程新手,如有任何帮助,我们将不胜感激。

最佳答案

你有代码等待用户输入,解释它从用户那里读取的命令,运行它们,然后返回到循环中等待用户输入,就像这样的伪代码:

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;
}

关于来自 shell 的 C++ 输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com