본문 바로가기

Programming

리눅스 SIGPIPE 처리



비정상적으로 종료가 되어 닫혀 버린 클라이언트 소켓에 대고, send 를 할시 리눅스에서 SIGPIPE signal이 발생하여
서버 프로세스가 종료될 수 있다.

signal을 무시하는 방법으로는 2가지가 있다.
1. 처음에 signal 함수를 호출하면서 SIG_IGN 인자를 넣어준다.
signal(SIGPIPE, SIG_IGN);

2. send 함수를 호출할때 발생하므로
send함수의 맨 뒤에다.. MSG_NOSIGNAL 인자를 넣어준다.
send( sock, msg, len, MSG_NOSIGNAL );

'Programming' 카테고리의 다른 글

CPPUNIT 테스트  (0) 2011.01.07
기초지식 정리  (0) 2010.12.20
IOCP 정리  (0) 2010.12.02
SELECT 함수 정리  (0) 2010.11.30
compile - error 팁  (0) 2009.08.10