当SIGPIPE上升时,我可以确定哪个套接字关闭了吗?

时间:2013-11-28 06:24:00

标签: macos sockets unix networking signals

我正在使用Mac OS应用程序并使用BSD Socket。我在运行时有几个TCP套接字。

当SIGPIPE到来时,我所知道的是远程服务器关闭了一个或某个套接字。当我捕获SIGPIPE信号时,是否可以确定哪个套接字出/出错?

1 个答案:

答案 0 :(得分:1)

如果您的程序是单线程的,那么它就是您写入的最后一个文件描述符。如果多线程,那么你就不走运了。

我建议在这两种情况下,只需将SIGPIPE设置为SIGIGN并使用write的返回值来确定已关闭的文件描述符。