首頁 > 軟體

epoll出現Bad file descriptor的原因

2020-06-16 17:44:11

epoll出現Bad file descriptor的原因

錯誤的順序:

  close();

  epoll_ctl(epollfd, EPOLL_CTL_DEL, sockfd, &ev);

正確的順序:

  epoll_ctl(epollfd, EPOLL_CTL_DEL, sockfd, &ev);

  close();

在刪除事件epoll_ctl(epollfd, EPOLL_CTL_DEL, sockfd, &ev);之前呼叫close()關閉socket描述符,就會導致刪除事件時epoll_ctl()返回值小於0,並且提示Bad file descriptor。在事件刪除後,再呼叫close()關閉對應的socket描述符就不會報錯了。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-04/129818.htm


IT145.com E-mail:sddin#qq.com