c++ - fork 和传递套接字 c++

标签 c++ networking fork

我刚开始使用 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/

相关文章:

c++ - 给定 1000 个长度为 100 的字符串,找出最小的唯一子字符串的长度

时间:2019-03-08 标签:c++char*parsing

networking - 对于网络流量, "origin"这个词对您来说意味着什么?

c - 如果我使用 exec 生成另一个进程,它可以访问使用 mmap 映射的共享内存吗?

c++ - Qt - 当值发生变化时,QSpinBox 上的每个失去焦点是否都有信号?

c++ - 将指针设置为零是否等同于将其设置为 NULL?

Java 网络阻塞方法和 while 循环

c++ - 在传出的 UDP 数据包上设置 TTL?

c - 如何让 'fork()' ed child 共享标准输入?

c - execvp-ls : fts_open: No such file or directory