欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 嵌入式开发之进程回收

嵌入式开发之进程回收

2025/5/9 20:14:17 来源:https://blog.csdn.net/qq_22111417/article/details/143466320  浏览:    关键词:嵌入式开发之进程回收

子进程结束时由父进程回收,

情况一:如果父进程比子进程先结束,则子进程变成孤儿进程由init进程回收。

情况二:如果子进程比父进程先结束,如父进程没有及时回收则出现僵尸进程。


1、进程回收-wait函数

#include <unistd.h>

pid_t wait(int *status);

  • 成功时返回回收的子进程的进程号;失败时返回EOF;
  • 若子进程没有结束,父进程一直阻塞;直到子进程结束,父进程回收成功返回为止。
  • 若有多个子进程,哪个先结束就先回收;如果创建三个子进程,就要调用三个wait来执行。
  • status:指定保存子进程返回值和结束方式的地址
  • status为NULL表示直接释放子进程PCB,不接收返回值
int status; 
pid_t pid;if((pid = fork()) < 0){perror("fork");exit(-1);
}
else if(pid == 0)
{sleep(1); exit(2);//其中低 8 位是有效的,高位可能会被系统解释
}
else{wait(&status); printf("%x\n",status); //返回子进程的返回值和结束方式,16进制打印出来。
}

进程返回值和结束方式:

  • 子进程通过exit/_exit()/return 返回某个值(0-255&#

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词