当父母被发信号杀死孩子时,如何将其他参数挤入收割者功能?(c)?
我正在编写一个TCP服务器,其功能与聊天室非常相似,并且遇到了这个问题。
当用户连接时,将创建子进程以为用户提供服务。
当用户登录时,我将他的用户名存储到文本文件
online.txt
中
但是当用户退出时,我需要将用户从online.txt
(问题),父母然后signals
areaper()
中移除并杀死孩子。
我的问题是:
问题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?
提前谢谢,我希望马上问三个问题不是太贪心。
任何有关任何问题的见解将不胜感激。
没有找到相关结果
已邀请:
2 个回复
坝胺绣敝
先对冈蒲