1

我正在unix下用c建立一个聊天。我有一个服务器端和一个客户端。一切都很好,除非客户端关闭 shell 窗口。在那种情况下,客户端没有告诉服务器他要去,服务器认为他仍然登录。

我想在客户端通过按下 X 按钮关闭终端时处理信号。我的进程得到什么信号?我试图处理 SIGHUP、SIGQUIT 和 SIGTERM,但它们似乎不起作用。

4

1 回答 1

0

当客户端按 X 关闭终端并在服务器应用程序中捕获相同的信号时,您可以发送用户定义的信号 SIGUSR1 或 SIGUSR2 之一。为此,您需要从需要维护的开放终端列表中获取有关从哪个服务器接收信号终端的终端的信息。

关于这些信号的更多描述可以在信号手册页或这里找到

 Signal     Value     Action   Comment
 ---------------------------------------------------
 SIGUSR1   30,10,16    Term    User-defined signal 1
 SIGUSR2   31,12,17    Term    User-defined signal 2
 SIGTSTP   18,20,24    Stop    Stop typed at tty
于 2013-06-20T08:48:37.013 回答