标签: macos sockets unix networking signals
我正在使用Mac OS应用程序并使用BSD Socket。我在运行时有几个TCP套接字。
当SIGPIPE到来时,我所知道的是远程服务器关闭了一个或某个套接字。当我捕获SIGPIPE信号时,是否可以确定哪个套接字出/出错?
答案 0 :(得分:1)
如果您的程序是单线程的,那么它就是您写入的最后一个文件描述符。如果多线程,那么你就不走运了。
我建议在这两种情况下,只需将SIGPIPE设置为SIGIGN并使用write的返回值来确定已关闭的文件描述符。