我正在做一个项目,遇到了一个小问题。它被设计成一个简单的外壳,现在,我正在输入内置命令(pwd、cd、exit)。除了 CD 之外,我已经完成了所有工作。
解析有效,命令和参数的不同部分被放入一个数组中,所以现在我有这个:
void cd()
{
chdir(commands[1].c_str());
reset();
}
我使用该目录中的有效路径运行它,但它不会改变。我错过了什么?
谢谢!
你评论:
可以看出目录没有改变,因为在我运行 PWD 之后,(
getenv("PWD")
),它仍然显示启动程序的原始目录。
您正在错误地检查当前工作目录。请参阅chdir() 不影响环境变量 PWD
而不是使用getenv("PWD")
use getcwd
。