0

我正在编写一个必须执行我解析的命令的小 shell。

f 是这样的 char**:[ls][-la] p 是一样的,像这样使用:[wc] 所以我尝试在 wc 中使用管道 ls -la。我的问题是,当我执行适用于管道的“ls -la | wc && date”时,我的 minishell 被关闭并且它不执行“date”。我使用了等待功能来等待它完成,但什么也没做。看起来它在第二个 execvp 之后被卡住并退出。

我的数组以 NULL 结尾。ls -la | wc 执行得很好,但在此之后我又回到了 bash。我已经尝试过 execlp 和 execl 但我认为这不是问题,因为我需要我的第一个参数(ls + -la)的选项。请问你能帮帮我吗 ?提前致谢 :)

4

1 回答 1

1

一切形式exec永不回头;他们用指定的可执行文件替换当前运行的映像。这里的关键词是“替换”。

exec*执行调用后的语句的唯一情况是exec失败(例如,如果它找不到可执行文件)。

于 2013-07-11T03:43:41.307 回答