c - shell在即将关闭时发出什么信号

标签 c shell unix client signals

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

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

最佳答案

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

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

 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

关于c - shell在即将关闭时发出什么信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123379/

相关文章:

linux - Logger 命令在 CentOS 中不起作用?

shell - 在shell脚本中映射文件的对应值

linux - 遍历 bash 中的参数

Java - 将unix换行符转换为回车符

c - 正确使用 sscanf

数字的 Collat​​z 序列

c - 为什么 printf() 格式不适用于全 0 的十进制数?

c++ - 比较运算符的类似数学的链接 - 如 "if ( (5<j<=1) )"

c++ - pthread_create(),如何从传递的函数中获取返回值

c - 如何从用户 ID 中检索用户名