본문 바로가기

Programming/C & C++

FD_ZERO, FD_SET, FD_CLR, FD_ISSET


FD_ZERO(fd_set *fdset) : *fdset의 모든 비트를 지운다.
FD_SET(int fd, fd_set *fdset) : *fdset 중 소켓 fd에 해당하는 비트를 1로 한다.
FD_CLR(int fd, fd_set *fdset) : *fdset 중 소켓 fd에 해당하는 비트를 0으로 한다.
FD_ISSET(int fd, fd_set *fdset) : *fdset 중 소켓 fd에 해당하는 비트가 세트되어 있으면 양수값인 fd를 리턴한다.

select()는 FD_SET으로 설정된 fd만을 확인합니다. 그리고 확인 결과 read또는 write 준비가 된 fd를 fdset 내에서 '세트'시킵니다. 따라서 select() 함수 직후에 FD_ISSET으로 특정 fd가 'SET'되었는지 확인할 수 있습니다.
반응형