죄송한데, 다시 질문좀여^^(select함수와 관련된)

jinprho의 이미지

아까 주저리주저리 질문을 드렸는데,
종일(?) 매달려서 어느정도 가락을 잡게 되었습니다.

select 함수를 이용해서 기다릴 경우에,
외부입력이 들어올 때와 혹은 서버측에서 데이터가 들어올 때(readset)
rset 값이 바뀌는 것을 확인 할 수 있었습니다.

그래서 이 값을 FS_ISSET 매크로에 넣어서 비트 AND 연산을 통해 비교하여 return값을 1 이나 0을 보내는 것을 알게되었습니다.

그런데....궁금증이 해결되었다 생각은 했는데......
어떻게 rset 값이 select 함수 인자로 쓸때와 FS_ISSET 매크로에서 쓸때가 달라지게 되는건가요??

select 값 리턴은 가능한 이벤트 수라 주로 1만 리턴 되던데여..

select에서 1이 return되면 판별과정(FS_ISSET를 이용한)을 거치게 되는데 그 중간에 rset 가 변하게 되는 원리가 궁금합니다.

이 글을 적고 다시 알아보겠지만..
아시는 분들, 답변 부탁드리겠습니다.

jick의 이미지

man select는 해보셨나요?

Quote:
Three independent sets of file descriptors are watched. (어쩌구 저쩌구...) On exit, the sets are modified in place to indicate which file descriptors actually changed status.

* 그리고 질문을 할 때에는 표준어를 사용하면 답변을 얻을 확률이 높습니다.

jinprho의 이미지

답변해주셔서 감사합니다.
select에서 rset을 변화시켜주는군요^^