select의 maxfd에 대한 질문

kass73의 이미지

안녕하세요.....

select를 maxfd = 5(기존에 fd가 4까지 열려있었고)로 하여
select에서 이벤트가 없어서 대기하고 있는중에 새로운 연결이
이루어져 fd가 생겨서 이 fd가지 select에서 검사하려고 합니다.
이때 FDSET해주고 maxfd만 새로운 fd + 1하여 주면 될까요?

아니면 새로운 연결이 생길수 있는 경우를 대비하여 select의
maxfd를 FDSETSIZE 으로 지정해야 하나요?

답변 감사합니다.

익명 사용자의 이미지

fd = 새연결 ;
if ( fd > maxfd )
maxfd = fd;
...
ret = select(maxfd+1, ...);

익명 사용자의 이미지

답변 감사합니다.

select가 event가 발생할때 까지 계속 기다리도록 되어있으면 위와 같이
안될텐데 방법이 없을까요?

참고로 select문이 있는 thread와 연결을 기다리는 thread가 별도로
동작합니다.