gpt4 book ai didi

c++ - 编写 Shell - 使用 system() 或 exec() 来运行命令?

转载 作者:行者123 更新时间:2023-11-30 04:06:05 25 4
gpt4 key购买 nike

我听说有两种编写我们自己的 shell 的方法。第一种方式包括以下步骤:

1- 在 while 循环中输入命令
2- 内部循环对每个命令使用 fork()(创建一个进程),然后使用 exec() 系统调用来执行该命令。

第二种方式是:

1- 在 while 循环中输入命令
2- 内部循环对每个命令使用 fork()(创建一个进程),然后使用 system() 系统调用来执行该命令。

我想知道哪一个更适合使用。
非常感谢任何建议。

最佳答案

system(3) 调用调用 /bin/sh 来运行命令。

如果您认为调用系统 shell 是“实现”您自己的 shell 的合法方式,那么您也可以摆脱 while 循环,只需要一个包含

myshell.c
int main(int argc, char** argv) { 
execve("/bin/sh", argv, environ);
}

关于c++ - 编写 Shell - 使用 system() 或 exec() 来运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037044/

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