이미 원격지에서 close된 socket에 send할때 발생.

closed socket에 send할때 리눅스는 SIGPIPE 시그널을 발생.

SIGPIPE에 대한 디폴더핸들러는 프로세스를 kill하는 것임.

프로세스 kill을 방지하려면

1. 프로세스가 SIGPIPE를 무시하도록 설정

ex)

signal(SIGPIPE, SIG_IGN);

or

sigignore(SIGPIPE);


또는


2. send함수를 시그널을 발생시키지 않도록 호출

ex)

 send(sockfd, buf, buflen, MSG_NOSIGNAL);



Posted by AlwaysNR
BLOG main image
잡동사니 by AlwaysNR

공지사항

카테고리

분류 전체보기 (39)
사진 (9)
일상 (5)
프로그래밍 (15)
고발 (0)
끄적끄적 (7)
좋은 곳 (1)
조물딱조물딱 (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :