chdir()之后的基本shell -ls命令

时间:2016-02-18 08:19:15

标签: c shell ls cd chdir

我正在尝试创建一个基本shell,但我遇到了问题。 shell更改目录就好了,如果用户输入了无效目录,则输出错误。 shell还有一个“pwd”的内部命令,并在更改目录后打印出新的工作目录。但是,如果我在更改目录后调用“ls”命令,则会出现以下错误:

“ls:无法访问:没有此类文件或目录”。

在父进程中处理“cd”命令,并且工作目录已成功更改。在子进程中调用execvp()。如果我用新的工作目录调用“ls”命令,那么ls命令会很好地列出文件,但是如果我只是单独调用“ls”,我就会收到错误。可能是问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

该错误仅表示没有作为ls命令的参数传递。它相当于运行以下内容。

ls ""

在程序中调用ls命令之前检查或打印命令。