使用c ++程序在shell中更改目录

时间:2012-03-04 10:07:15

标签: c++ ubuntu

我需要更改shell中的目录

using namespace std;
int main(int argc, char **argv)
{
cout<<system("cd ..")<<endl; 
return 0;
}

现在我明白这不行。我的问题是,我的其他选择是什么。 感谢

2 个答案:

答案 0 :(得分:4)

每个进程(所以你的程序也都有)拥有自己的当前目录。当你调用system("cd ..")时,会执行一个单独的进程(在ubuntu中我认为它是bash)并且该进程正在执行命令cd ..,因此它正在更改自己的当前目录,而不是它结束了。你想要做的是改变你自己的进程(程序)的当前目录,你要做的是:

#include <unistd.h>
chdir("..");

显然将include指令放在文件的开头:)

答案 1 :(得分:0)

您无法更改其他流程的工作目录。