请教Linux的一个signal信号问题
我有1个主进程和2个线程,代码大概如下:
void main()
{
pthread_create(task1.....);
pthread_create(task2.......);
for(;;) {run();}
}
void task1()
{
for(::) {run(); }
}
void task2()
{
for(::){run(): }
}
因为task1和task2都有服务器端程序socket,为了防止触发PIPE错误,我对PIPE信号作了忽略处理,调用了
signal(SIGPIPE, SIG_IGN)。我的问题是signal调用加在哪里?在main里边加一句signal(SIGPIPE, SIG_IGN)就可以了?
还是应该task1和task2都要加入signal(SIGPIPE, SIG_IGN)?
我个人推测应该只在main里边就可以了,主进程会处理子线程的异常处理。还请各位大神帮忙解答,谢谢!