我正在开发客户端服务器程序,当我试图向其他进程发送信号时,它只显示“用户定义信号1”这个句子。正如你在代码中看到的那样,我正在使用SIGUSR1
。用户自定义信号1
客户:
void Exit(req req)
{
kill(req.server_pid, SIGUSR1);
fprintf(stdout,"\n[CLIENT] Closing the client...\n");
sleep(2);
unlink(FIFO_CLIENT);
exit(0);
}
服务器:
void ClientLeft (int sig)
{
fprintf(stdout,"\n[CLIENT] Just left the game!");
}
int main()
{
signal(SIGUSR1, ClientLeft);
}
我不明白为什么客户端不运行线的其余部分,甚至是服务器不显示的printf 。
'server'和'client'在同一个系统上运行? – 2014-09-04 10:49:28
“用户定义信号1”从哪里来?具体来说,你确定函数“Exit”实际上是否被调用? – Odexios 2014-09-04 10:49:41
@NatashaDutta是的。 – 2014-09-04 10:59:09