CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): dalgong (달공아저씨)
날 짜 (Date): 2002년 7월 26일 금요일 오전 10시 28분 22초
제 목(Title): Re: [질문]Linux에서 send(), SIGPIPE, SIG



SIGSTP가 온다는 건 이해가 안가네요. 다른 이유로 이게 날라오는 건 아닌지
살펴보시는건.. 

별로 관계 없는 얘기지만..
select()로 connection close를 검사하신다고 하셨는데, 
그게 제대로 동작을 안하지 않나요? 일반적으로 connection close를 검사할려면, 

read()가 0을 반환하거나, 

write()가 -1 & EPIPE (물론 SIGPIPE를 ignore한 상태에서)등의 상태인 경우입니다. 
write에서 connection close인 걸 알아도, 그전에 write한게 제대로 전달되었는지 
여부는 알 수 없기 때문에 application에서 처리를 해줘야 합니다. 

이런 문제로 해서 socket은 프로그램의 구성을 할때 중간중간에 connection 
close하는 부분에 대한 처리가 어쩔 수 없이 들어가게 되는 지저분한 문제가 있죠. 

이걸 깔삼하게 해결하는 방법있나요?
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.