Tag: tcpserver

当父母被发信号杀死孩子时,如何将其他参数挤入收割者function?(c)?

我正在编写一个TCP服务器,它的function非常像聊天室,并且遇到了这个问题。 当用户连接时,将创建子进程以为用户提供服务。 当用户登录时,我将他的用户名存储到文本文件online.txt 但是当用户注销时,我需要从online.txt (问题)中删除用户,然后父母signals online.txt reaper()并杀死孩子。 我的问题是: 问题1:我如何向收割者挤出额外的信息(例如用户用来登录的用户名),这样它也可以从online.txt删除用户? 或者还有另一种更好的方法吗? Q2: reaper()中的sig从哪里获得价值? 我可以在收割机上添加其他参数吗? 问题3:我可以将孩子的pid用作login.txt的某种主键吗? 如果是这样,如何在父母调用的reaper()期间检索孩子的pid? 收割机看起来像这样: void reaper(int sig)//where does sig come from? { int status; while (waitpid(-1, &status, WNOHANG) >= 0) ; } 父母使用的信号如下所示: (void) signal(SIGCHLD, reaper);//how can I add more parameters? 提前谢谢,我希望马上问三个问题不是太贪心。 任何有关任何问题的见解将不胜感激。