【发布时间】:2011-10-03 00:10:18
【问题描述】:
大家好,我正在尝试用 C++ 编写一个 shell,但我在使用 exec 命令的输入文件的功能上遇到了问题。例如,Linux 中的 bc shell 能够执行“bc
char* input = “input.txt”;
execlp(input, bc, …..) // I don’t really know how to call the execlp command and all the doc and search have been kind of cryptic for someone just starting out.
这甚至可以通过 exec 命令实现吗?还是我必须逐行阅读并在 for 循环中运行 exec 命令??
【问题讨论】:
-
execlp 用于启动单个进程。您必须逐行读取输入文件并单独处理每个命令。
-
execlp() 仅在您知道编译时的命令和参数时才真正有用,这对于 shell 来说很少见。您应该假设您将使用 exec*() 系列函数的 execv*() 部分。
标签: c++ linux shell input exec