Linux下Socket的SIGPINPE信号导致程序退出
当server端关闭一个socket连接时,如果client端继续发送数据,系统会发出一个SIGPIPE信号给进程,通知进程这个连接已经断开,不应该再发送数据。而Linux系统的默认处理规则是对SIGPIPE信号执行terminate(终止、退出)处理,所以client端程序会异常退出,为了避免这种情况发生,可以将SIGPIPE设为SIG_IGN。
signal(SIGPIPE, SIG_IGN);
signal(SIGPIPE, SIG_IGN);