首页 > 解决方案 > 如何从父进程向多个分叉子进程发送消息?

问题描述

我有一个允许客户端连接的服务器,我正在使用select()它来管理新连接或来自已连接客户端的传入消息。对于每 2 个连接的客户端,我使用 来创建一个孩子fork(),记住他们的文件描述符。


我希望子进程等待父进程发送信息以及与发送该信息的客户端关联的套接字的文件描述符。所有的孩子都阅读了这个,只有与该客户端相关联的孩子使用该信息执行特定任务,而其余孩子则返回等待阅读来自父母的新消息(另一个孩子在完成该任务后也会这样做)。

我的想法是将消息写入fifo文件中,按次在换行符上复制nr_of_children(否则只有一个孩子可以在信息被消耗时读取)并让子进程从中读取,使用fifo上的锁所以只有一个进程一次读取一行。

有没有更好的方法来做到这一点,如果没有,我的想法是否可以完成这项工作?谢谢你。

标签: cforkmkfifo

解决方案


推荐阅读