在Unix中的自定义shell中的chdir

时间:2016-02-16 05:05:09

标签: c++ shell unix terminal chdir

我正在研究一个项目,并遇到一个小问题。它被设计成一个简单的shell,现在,我正在努力输入内置命令(pwd,cd,exit)。我已经完成了CD工作。

解析工作,并且命令和参数的不同段被放入一个数组中,所以现在我有这个:

void cd()
{
  chdir(commands[1].c_str());

  reset();
}

我使用该目录中的有效路径运行它,但它没有改变。我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

comment

  

可以告诉目录没有改变,因为在我运行PWD(getenv("PWD"))之后,它仍然会显示启动该程序的原始目录。

您未正确检查当前工作目录。见chdir() not affecting environment variable PWD

而不是使用getenv("PWD")使用getcwd