c++更改目录并运行make

c++ change directory and run make

本文关键字:运行 make c++      更新时间:2023-10-16

我有这个代码

 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/codep2编译代码,所以我做错了什么?

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

应该是

chdir("/var/code/p1")

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

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