我刚开始使用 fork ,我很难理解如何实现我想要的。我会尽力解释。
我有进程 A,它是一个运行在 Linux 上的功能性 Berkeley 套接字服务器。
我需要进程 A 在后台状态下将程序从磁盘加载到单独的非阻塞进程(进程 B)中。然后进程A需要将进程A的套接字控制权交给进程B。最后进程 A 需要结束,让进程 B 继续运行。
我不清楚如果旧进程结束需要什么将套接字传递给新进程,以及创建允许原始进程结束的非阻塞新进程的最佳方式。
最佳答案
您不需要做任何特别的事情。只要确保 close on exec为您希望进程 B 继承的任何文件描述符清除标志,并为您不希望进程 B 继承的任何文件描述符设置标志。然后调用 exec
将进程 A 替换为进程 B。进程 B 将以完整的所有可继承文件描述符启动。
关于c++ - fork 和传递套接字 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14166340/