我们可以将参数传递给 C 中的信号吗?

标签 c sockets signals

我正在用 C 实现一个简单的迭代 TCP 客户端/服务器。服务器在一个循环中无限列出。

现在,如果在任何时间点发生 Ctrl+c (SIGINT),我将如何释放服务器中使用的资源?

例如,我在自己的信号处理程序中捕获了信号;我如何获得套接字描述符 以及程序中使用的缓冲区以释放它们?

我是套接字编程的新手;任何建议将不胜感激。

最佳答案

不要安装信号处理程序。不要做任何事。 SIGINT 的默认操作是终止进程,假设没有其他进程具有您的套接字的描述符,它们将自然关闭并在进程终止时不再存在。

关于我们可以将参数传递给 C 中的信号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294772/

相关文章:

Python 2.7 多重处理 - 无法通过管理器字典传递套接字对象

c++ - 通过 pid 分配信号处理程序

c - 为什么 char *str = "anything"的大小总是 8?

c - 如何使用允许我访问结构字段的结构来测试 -> C 运算符?

c - 如何取消引用结构中结构指针数组的索引

c - 如何检测接收到长度为 0 的 UDP 数据报

windows - 调用套接字绑定(bind)导致 Windows 蓝屏

c - 静态变量的地址相同,但局部变量的地址不同

c++ - 在 QueueUserAPC 中指定的回调未被调用

c++ - 信号的总能量