【发布时间】:2012-02-15 13:08:00
【问题描述】:
在我的一门课程中,我们正在编写自己的 shell(基本上是从零开始)。
我们已经编写了一个词法分析器和一个解析器来将输入划分为更容易处理的漂亮“命令”结构。同样,我有一个函数read_command(),它会一次读取一个命令并确定它是什么类型的命令(管道/和/或/简单/等)。
我现在正在尝试编写execute_command(struct command cmd) 函数,它实际上接受命令并运行它。我正在为如何开始实际编写这个函数而苦苦挣扎。
假设我只是得到一个非常简单的cat foo.txt 作为命令。我的命令结构会将它整齐地划分,所以我有一个包含两个单词的单词数组。
现在我想运行带有参数foo.txt 的cat 可执行文件。我意识到我应该使用$PATH 变量来尝试查找可执行文件,然后使用此参数运行它。
我正在努力解决几个主要问题:
- 如何实际搜索命令
cat?请记住,该程序使用 C。我可以使用哪些函数来搜索目录?如何使用 PATH 执行此操作? - 当我找到命令
cat时,如何以foo.txt作为参数运行它?这如何在 C 中完成?
【问题讨论】: