问题描述
假设进程A调用fork
pid = fork();
...
waitpid( pid,...);
在这些调用(fork 和 waitpid)之间,由 fork() 创建的 proccess-B 是否有可能完成?然后一些新的进程-C 启动并获得一个等于进程-B 的旧 pid 的 pid。然后waitpid将等待进程C的结束,而不是B。
exec-family 调用如果成功则不会返回值和控件。 exec 启动新进程而不是当前进程,但保留进程 pid。将 fork/vfork + exec + waitpid 作为真正的“原子”操作并获得由 exec 创建的进程的结果是否有保证?
bash/shell 是否以“原子”方式运行、等待命令并返回其结果?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)