CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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!
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.