| [ CnUnix ] in KIDS 글 쓴 이(By): ymir (Mizz) 날 짜 (Date): 2002년 11월 22일 금요일 오후 05시 55분 06초 제 목(Title): [Q] read() 중.. EINTR.. socket 에서 write 하고 read() 으로 상대방의 데이터를 기다리는데.. 바로 Interrupted system call 이 발생하면서 -1 을 리턴합니다.. 실제로 상대방은 데이터를 쓰지도 않았음... 연결하고 나서 처음 주고 받을 때는 아무 에러 없는데.. 두번째로 주고 받을 때에는 100% 저런 상황이 발생합니다.. 일단 어떤 인터럽트가 발생한건지 알아 내려면 어떻게 하면 되는지요? 그리고 어떤 경우에 저런 인터럽트가 발생하는지요? 일단 -1 을 한번 리턴하는거 말고는 정확한 데이터값들이 오고갑니다.. (즉 read() 시에 발생하는 EINTR 을 무시할 수 있다면 정상적인 데이터 전송 상황이라는 것입니다...) 일단 저는 read() 의 리턴값이 0 이하이면 바로 에러처리를 하도록 해 놓 상태입니다.. 조언 부탁드리겠습니다... 감사합니다.. ^^ Oh, I do believe everlasting love and destiny to meet you again I feel a pain I can hardly stand all I can do is loving you - *Mizz* the Magic Knight! |