我有这个代码
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编译代码,所以我做错了什么?
答案 0 :(得分:3)
chdir("cd /var/code/p1")
应该是
chdir("/var/code/p1")
if测试不正确,因为chdir在成功时返回0。你需要
if (chdir("/var/code/p1") == 0)
system("make");