select 문을 사용할때 FD_ZERO로 FD_CLR을 대체해도 문제가 없을까요?

bejoy4him의 이미지

select 함수에 소켓을 등록하기 위해

FD_ZERO, FD_SET, FD_ISSET정도를 사용합니다.
소켓이 끊어지는 경우 FD_CLR을 호출하는 경우가 일반적이겠지만
그렇게 하지 않고 select할 때마다 FD_ZERO, FD_SET과정을 거칩니다.

당연히 효율적이지 않겠지만,
위의 방법을 사용하였을경우 발생할 수 있는 문제점이 있을까요?

sunyzero의 이미지

select() 는 리턴할때마다 fd_set의 값을 변경시킵니다. 즉 입력값이 리턴값의 역할을 하죠.
따라서 매번 select()를 호출할때마다 입력값을 재설정해줘야 합니다..

그래서 select()대신에 입력/출력이 분리되어있는 poll()을 사용하거나나
리눅스라면 epoll()을 씁니다.
========================================
* 부분이 전체를 대변하는 하나의 속성일때 진리이다.
영속적이지 못한 것은 전체가 될 수 없다.

========================================
* The truth will set you free.