歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> epoll出現Bad file descriptor的原因

epoll出現Bad file descriptor的原因

日期:2017/2/28 13:53:20   编辑:Linux教程

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描述符就不會報錯了。

Copyright © Linux教程網 All Rights Reserved