我正在写一个关于进程的程序
该进程接受 bash 命令并使用 exec 运行它
我使用 fork() 在其中创建子进程 run exec
并计划在父进程中做一些后期处理
但由于某种原因,exec 运行正常,但 wait 无法正常工作
“在这里后处理”打印放在 exec 程序终止之前
以前可以用,突然就不行了
我不知道我做了什么改变来导致这个问题
#include <stdio.h>
#include <sys/wait.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
/* code */
for(int i = 0; i < argc; i++){
//delete argv 0 for convincent
argv[i] = argv[i + 1];
}
int pid = fork();
if(pid == -1){
return 1;
}
if(pid == 0){
execvp(argv[0], argv);
}else{
wait(NULL);
printf("post process here");
}
return 0;
}