如何在功能系统中使用命令()

时间:2017-12-23 17:16:30

标签: c++ windows console

我想使用系统(“cd \”)函数转到根目录,但它不起作用,因为我想创建一个文件夹系统(“md examplecpp”);在这条路径中,创建了一个文件夹,我有一个程序。

2 个答案:

答案 0 :(得分:2)

你的问题是"当前目录"是一个每进程属性(尽管子进程继承其父进程的当前目录作为初始设置)。 system函数创建一个shell进程,该进程执行cd命令(从而更改shell进程的当前目录),然后退出。父流程(您的程序)的当前目录永远不会更改。

查看_chdir函数(或Posix chdir

编辑:你肯定是在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]