我想使用系统(“cd \”)函数转到根目录,但它不起作用,因为我想创建一个文件夹系统(“md examplecpp”);在这条路径中,创建了一个文件夹,我有一个程序。
答案 0 :(得分:2)
你的问题是"当前目录"是一个每进程属性(尽管子进程继承其父进程的当前目录作为初始设置)。 system
函数创建一个shell进程,该进程执行cd
命令(从而更改shell进程的当前目录),然后退出。父流程(您的程序)的当前目录永远不会更改。
编辑:你肯定是在Windows上 - 你甚至把它放在标签中!
答案 1 :(得分:1)
我想使用系统(“cd \”)函数转到root 目录,但它不起作用,因为我想创建一个文件夹 system(“md examplecpp”);
在调用系统之前,将两个(或更多)命令合并为一个命令,以分号分隔。
即
std::string cmd = "cd /home/dmoen ; mkdir examplecpp ; ls -lsa ";
std::cout << "\nsystem command: " << cmd << "\n" << std::endl;
std::system (cmd.c_str());
课程 - cmd字符串看起来就像您在命令提示符下键入的那样。在测试期间,您可能决定包含“rmdir examplecpp”,因为如果dir已经存在,“mkdir”会抱怨。
输出(无趣的东西被剪掉):
system command: cd /home/dmoen ; mkdir examplecpp ; ls -lsa
total 402216
4 drwxr-xr-x 105 dmoen dmoen 4096 Dec 23 11:42 .
4 drwxr-xr-x 5 root root 4096 Jan 3 2016 ..
[snip]
4 drwxrwxr-x 2 dmoen dmoen 4096 Dec 23 11:42 examplecpp
[snip]