c - 如果孩子调用 exec,wait() 会做什么?
问题描述
如果一个子进程调用 exec,它会终止并使用相同的 pid 创建一个新进程。
wait() 函数会等待子节点或孙子节点终止吗?
解决方案
如果一个子进程调用 exec,它会终止并使用相同的 pid 创建一个新进程。
不,不完全是。
exec
不会创建新进程——它会用新程序覆盖单个进程(旧进程)。所以没有新的孩子(没有“孙子”),也没有新的pid。因此,如果父调用wait
,它不会返回,直到exec
'ed 程序调用。(事实上,exec
根本没有父母可以检测到的外部影响。)
推荐阅读
- javascript - Cheerio 从 .text() 获取包含中断和 H 标记的内容
- laravel - 如何在控制器中使用 Laravel 中的自定义保护登录用户
- laravel - 带有搜索错误链接的laravel分页
- node.js - React Native:你需要哪些全局包保持最新?
- logging - Scala Cats:如何测试日志记录与如何登录生产代码
- tensorflow - 使用 Tensorflow/Keras 求解微分方程的自定义损失函数问题
- java - 从字符串数组中删除元素后,如何减少元素的索引?
- css - 在 D3 中,如何在使用变换旋转布置其位置后旋转字母?
- python - 为什么 not (a and b) 与 not a and not b 不一样?
- typescript - 打字稿:对象数组中的联合类型