加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用epoll_create1()而不是epoll_create()有什么好处?

发布时间:2020-12-16 03:47:03 所属栏目:百科 来源:网络整理
导读:我正在重写多线程 Linux-2.6.32应用程序,用 epoll 替换 select . epoll_create1(2)的手册页声明: If flags is 0,then,other than the fact that the obsolete size argument is dropped,epoll_create1() is the same as epoll_create(). 然而, epoll_wait(2
我正在重写多线程 Linux-2.6.32应用程序,用 epoll替换 select.

epoll_create1(2)的手册页声明:

If flags is 0,then,other than the fact that the obsolete size argument is dropped,epoll_create1() is the same as epoll_create().

然而,epoll_wait(2)中使用的这个过时的大小参数不是maxevents吗?

epoll_wait(int epfd,struct epoll_event *events,int maxevents,int timeout);

这意味着在使用epoll时我们可以避免在epoll_create1中声明最大事件数,但是在调用epoll_wait时我们迟早要引用它?如果是这样,将epoll_create1带入游戏的重点是什么?

感谢您对此主题的启发.

解决方法

不,使用epoll_wait,maxevents会告诉您将返回的最大事件数.它与内核中维护的数量无关.

旧版本的epoll_create使用大小来设置某些限制,但不再使用它,因此注释size参数已过时.

使用epoll_create1的优点是它允许你指定标志,我认为这些标志目前仅限于close-on-exec(因此在执行另一个进程时文件描述符会自动关闭).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读