我正在尝试在 C 中实现一个子 shell。我已经有一个普通的 shell,它看起来像这样:
int status;
pid = fork();
if (pid < 0) {
exit(1);
}
else if (pid == 0) {
if (execvp(node->command.program, node->command.argv) < 0) {
exit(1);
}
}
else {
waitpid(pid, &status, 0);
}
我试图弄清楚 subshell 是如何工作的,以及它与上面的代码有何不同。
提前致谢。