红联Linux门户
Linux帮助

linux程序多线程socket程序出现断开的管道

发布时间:2008-06-11 10:44:44来源:红联作者:Maril
问题描述:

socket在侦听情况下,接受一个外部的socket,但是还没有处理。之后该socket已经断开,但是程序却继续处理这个socket,此时会导致程序处理一个断开的socket,程序退出。

处理方法:

在程序中添加:

struct sigaction action; //信号处理结构体
action.sa_handler = function; //产生信号时的处理函数
sigemptyset(&action.sa_mask);
action.sa_flags = 0;
sigaction(SIGPIPE,&action,NULL); //信号类型
function是捕捉到的处理函数。

function函数可以不做任何处理,但是该函数需要存在。

这样处理后,程序就不会退出了。
文章评论

共有 3 条评论

  1. zxddong 于 2012-12-08 17:45:50发表:

    瞅瞅~~~~~~~~~

  2. 啊啊 于 2012-12-04 23:03:48发表:

    我为什么不行啊

  3. goldwing1800 于 2008-06-13 16:43:30发表:

    :0w45cd(1