我需要更改shell中的目录
using namespace std;
int main(int argc, char **argv)
{
cout<<system("cd ..")<<endl;
return 0;
}
现在我明白这不行。我的问题是,我的其他选择是什么。 感谢
答案 0 :(得分:4)
每个进程(所以你的程序也都有)拥有自己的当前目录。当你调用system("cd ..")
时,会执行一个单独的进程(在ubuntu中我认为它是bash
)并且该进程正在执行命令cd ..
,因此它正在更改自己的当前目录,而不是它结束了。你想要做的是改变你自己的进程(程序)的当前目录,你要做的是:
#include <unistd.h>
chdir("..");
显然将include
指令放在文件的开头:)
答案 1 :(得分:0)
您无法更改其他流程的工作目录。