epoll 에서 epoll_ctl 호출시 무조건 실패하면서 EBADF를 돌려줘

vincenthanna의 이미지

epoll_create()는 성공하는데 epoll_ctl에 소켓을EPOLL_CTL_ADD 로 호출하면 꼭 EBADF를 errno에 넣어주고 실패하네요. 혹시 이런 증상을 겪으신 분 계신가요?

배포판은 한컴리눅스와 페도라 코어 3에서 해보았고요 둘다
같은 증상입니다.

alone의 이미지

찾아 보셨겠지만...
Bad file number 이거죠..
프로그램상 실수일 확률이 90%이상일듯 합니다.

저도 epoll 쓰지만 아주 만족하게 사용중..
전 fedora 3에서 사용

내일은 내일일뿐.....

vincenthanna의 이미지

정말 하루종일 제가 잘못 작성한 코드를 수정하며 보냈습니다.

참고로 EBADF는 EPOLL뿐만 아니라 넘기는 소켓 FD역시잘못되었을 경우에 에러가 나는것을 알았습니다.

답변 달아 주셔서 감사합니다. 하마트면 제 실수는 생각치 못하고 그냥 지원안되나 보다 하고 포기할뻔했어요.^^