我目前使用kqueue来处理服务器进程中的每个线程的多个客户端 所以我不希望线程在信号SIGPIPE出现时被终止,我只想删除来自kqueue的相应socked ID。 所以我的问题是:有没有办法获得一个Signalhandle中相应的socketid,并将其解析回进程以将其从事件kqueue中删除,或者我是否有SIG_IGN SIGPIPE ,并通过返回 - 1发送?并且会在超时时间后返回-1值还是立即返回-1?在哪里申报SIGPIPE sig_t信号
最后,如果信号忽略的是我的解决方案:其中id必须把的
typedef void (*sig_t) (int);
sig_t
signal(int sig, sig_t func);
声明难道必须要在主函数? 还是在相应的线程开头?或仅仅是全球元素?
对send()的结果做出反应至少是更便携的,所以对我来说似乎是更好的方式。无论如何,我很好奇,如果有人有答案(+1) –
好吧,也许我表达了我的问题再次坏了,但尽可能使用返回的send(),我只是想知道,在哪里我必须把sig_t信号(SIGPIPE,SIG_IGN);让信号被忽略 – dhein