当前位置: 技术问答>linux和unix
请问如何捕获linux c SOCKET中SEND的错误,请指教,谢谢!
来源: 互联网 发布时间:2016-02-19
本文导语: if(send(Socket_id,msg,MsgLen_t,0)==-1){ perror( "can 't send message n "); } 程序自动退出了,不知如何搞,请高手列出具体方法,谢谢! | 应该是六楼说的问题 写...
if(send(Socket_id,msg,MsgLen_t,0)==-1){
perror( "can 't send message n ");
}
程序自动退出了,不知如何搞,请高手列出具体方法,谢谢!
perror( "can 't send message n ");
}
程序自动退出了,不知如何搞,请高手列出具体方法,谢谢!
|
应该是六楼说的问题
写一个读端已经关闭的管道会产生SIGPIPE信号
SIG_PIPE默认处理是终止程序
屏蔽掉这个信号就可以了
if(send(Socket_id,msg,MsgLen_t,MSG_NOSIGNAL)==-1) //ignore SIG_PIPE
{
perror( "can 't send message n ");
}
或者
signal(SIG_PIPE,SIG_IGN);
写一个读端已经关闭的管道会产生SIGPIPE信号
SIG_PIPE默认处理是终止程序
屏蔽掉这个信号就可以了
if(send(Socket_id,msg,MsgLen_t,MSG_NOSIGNAL)==-1) //ignore SIG_PIPE
{
perror( "can 't send message n ");
}
或者
signal(SIG_PIPE,SIG_IGN);