Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-收获子过程和背景_C_Shell - Fatal编程技术网

C-收获子过程和背景

C-收获子过程和背景,c,shell,C,Shell,为了收获却似乎无法摆脱僵尸的过程。那我该怎么做才能收获呢 另外,我不确定我是否在这里做后台工作。您的代码错误: while(waitpid(-1, 0, WNOHANG) >= 0){} pid\u t pid; 如果((pid==fork())==0){//这里有问题 if(execvp(arg[0],arg)未定义行为的结果初始化的pid(之后,将此比较结果与0进行比较) 你应该用if((pid==fork())==0){替换if((pid=fork())==0){Changeif

为了收获却似乎无法摆脱僵尸的过程。那我该怎么做才能收获呢

另外,我不确定我是否在这里做后台工作。

您的代码错误:

 while(waitpid(-1, 0, WNOHANG) >= 0){}
pid\u t pid;
如果((pid==fork())==0){//这里有问题
if(execvp(arg[0],arg)<0){
printf(“%s:未找到命令。\n”,参数[0]);
出口(0);
}
}
比较未使用
fork()
=>未定义行为的结果初始化的
pid
(之后,将此比较结果与0进行比较)

你应该用
if((pid==fork())==0){
替换
if((pid=fork())==0){
Change
if((pid==fork())==0){
替换
if((pid=fork())==0){
另一个“聪明”复合表达式)。
 while(waitpid(-1, 0, WNOHANG) >= 0){}
pid_t pid;

if ((pid == fork()) == 0){  // PROBLEM HERE
        if (execvp(arg[0], arg) < 0) {
            printf("%s: Command not found.\n", arg[0]);
            exit(0);
        }

}