【发布时间】:2016-02-18 08:19:15
【问题描述】:
我正在尝试创建一个基本的 shell,但是我遇到了一个问题。 shell 可以很好地更改目录,如果用户输入了无效的目录,则会输出错误。 shell 也有一个用于“pwd”的内部命令,并在更改目录后打印出新的工作目录。但是,如果我在更改目录后调用“ls”命令,则会收到以下错误:
“ls: 无法访问:没有这样的文件或目录”。
“cd”命令在父进程中处理,工作目录更改成功。 execvp() 在子进程中被调用。如果我用新的工作目录调用“ls”命令,ls 命令会很好地列出文件,但如果我只调用“ls”本身就会出现错误。问题的原因可能是什么?
【问题讨论】:
-
请提供minimal complete代码示例