c ++更改目录并运行make

时间:2012-03-24 15:52:54

标签: c++

我有这个代码

 switch(fork()){
        case -1: perror("fork");
          exit(1);
        case 0:
          if(chdir("cd /var/code/p1"))
          system("make");
          break;
        default: 
          break;
        }
/ var / code / p1中的

是一个make文件和一个代码文件(如果我在这个目录中生成它的工作),这段代码在/ var / code / p2中。

我的问题是:这段代码不是从/ var / code / p1编译代码,这是从/ var / code / p2编译代码,所以我做错了什么?

1 个答案:

答案 0 :(得分:3)

chdir("cd /var/code/p1")

应该是

chdir("/var/code/p1")

if测试不正确,因为chdir在成功时返回0。你需要

if (chdir("/var/code/p1") == 0)
       system("make");