2009-11-13 3 views
1

kqueue와 함께 select()를 사용하기 위해 앱을 수정하고 있습니다. select()는 예외적 인 조건을 폴 할 수있게합니다 :kqueue를 사용하여 예외 조건을 폴링

int select(int nfds, 
    fd_set *restrict readfds, 
    fd_set *restrict writefds, 
    fd_set *restrict errorfds,   <---- this thing here 
    struct timeval *restrict timeout 
); 

kqueue 문서를 읽은 후에는 그렇게 할 방법이없는 것처럼 보입니다. EVFILT_READEVFILT_WRITE이 있지만 EVFILT_ERROR/EVFILT_EXCEPTIONAL 행에는 아무 것도 없습니다. 예외적 인 조건을 조사하는 것이 가능합니까? 그렇다면 어떻게해야합니까?

답변

0

man 2 select을 인용하는 FreeBSD의에 뛰어난 상태 같은 것은 없다 :

검출 유일한 예외 상황 out-of-band 데이터가 소켓에서 수신이.

"그렇다면 kqueue가있는 소켓에서 OOB 데이터를 어떻게 찾을 수 있습니까?"라는 질문이 있습니다. 솔직하게 말해서, 나는 약간의 연구를하지 않고는 대답 할 수 없습니다.