首页 \ 问答 \ nginx的epoll_create的定义怎么是

nginx的epoll_create的定义怎么是

int epoll_create(int size) int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) int epoll_wait(int epfd, struct epoll_event *events, int nevents, int timeout) 这是什么情况呢???
更新时间:2021-09-17 06:09

最满意答案

去哪看的源码, 这是系统接口, Nginx怎么可能自己实现, 我grep了nginx源代码也没找到.

其他回答

回复 linux_c_py_php 从nginx的官网下了一份nginx-0.5.38.tar.gz的源码看的...,额,看有些人说nginx没有用glibc库的epoll接口,但是为什么还要实现这种接口呢?
http://blog.csdn.net/lengzijian/article/details/7609388去看这个,有一些nginx源码解读

相关问答

更多
  • 去哪看的源码, 这是系统接口, Nginx怎么可能自己实现, 我grep了nginx源代码也没找到.
  • 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,比nginx 的rewrite 强大 动态页面 模块超多,基本想到的都可以找到 少bug ,nginx 的bug 相对较多 超稳定 存在就是理由,一般来 ...
  • 确实如你所说,假如socket活跃数量比较高的时候,epoll性能不如select的。但是对于web服务器来说,他不是一个网游,他不需要socket长时间处于连接状态.也就说很少出现你所假设的情况;其实,epoll的四大优点你随便百度都一大把.什么时间用什么方案,本来就是见仁见智的事情.有时候优点可能是一种灾难
  • 就是没找到定义,直接就是看看你头文件包含的对不对就行了。
  • epoll_ctl用来添加/修改/删除需要侦听的文件描述符及其事件 epoll_ctl函数原型: int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); 成功返回0 ; 失败返回-1.
  • 由于您只使用单个UDP套接字,因此使用epoll没有意义 - 只需使用阻塞recvfrom即可。 现在,取决于您需要处理的协议 - 如果您可以单独处理每个UDP数据包 - 实际上可以从多个线程(在线程池中)同时调用recvfrom。 操作系统会小心只有一个线程会收到UDP数据包。 然后这个线程可以在handle_request中做任何它需要做的事情。 但是,如果您需要按特定顺序处理UDP数据包,那么您可能没有那么多机会来平行执行程序... As you are only using a single UDP ...
  • 这有点令人困惑。 当您打开一个新文件时,会创建两个实体。 一个如果文件在内核中处理。 另一个是文件描述符,一个引用该文件句柄的数字。 虽然我不确定epoll fd会发生什么,但我认为它与任何其他重复的fds相同,并且它们是相同的文件句柄。 有关这一点的提示, epoll(2)手册页中的摘录可能有所帮助: Q6关闭一个文件描述符会自动将它从所有的epoll集中删除吗? A6是的,但请注意以下几点。 文件描述符是对打开文件描述的引用(请参阅open(2) )。 无论何时通过dup(2) , dup2(2) , ...
  • 你的ev.data是一个联盟。 您可以使用fd成员,但您不必这样做。 您还可以在其中粘贴其他数据。 ev.data的重点当然是事件触发时你得到的数据,所以你需要一些方法将它与原始文件描述符联系起来。 将该文件描述符写入fd变体是实现该目标的一种简单方法,但存在其他解决方案。 一个流行的例子是定义一个抽象class Fd ,从中为特定目的从中派生具体类,然后将转换为void* ev.data.ptr基指针写入ev.data.ptr 。 收到事件后,将ev.data.ptr回Fd*并调用合适的虚拟成员函数来处理 ...
  • 来自epoll_ctl(2) : EPERM The target file fd does not support epoll. 我会猜测这个doc是一个常规文件。 普通文件随时可以read(2)或write(2)操作,因此它对常规文件中的epoll(7)或select(2)没有意义。 如果doc是管道或unix域套接字,请在此处注释(因此我知道要删除我的帖子)并修改您的问题,这样其他人就不会犯同样的错误。 :) From epoll_ctl(2): EPERM The target f ...
  • 适合我。 作为参考,这里是完整的C代码:它打印“eventfd_write”,“1”和“DING:1”。 在Linux 2.6.35-30-generic#56-Ubuntu SMP上测试。 #include #include #include #include #include #include int _epollfd, _eventfd; int ini ...

相关文章

更多

最新问答

更多
  • 如何避免iPhone应用程序泄漏?(How to avoid leaking in iPhone application?)
  • Rails引擎:在哪里定义仅用于测试的gems(Rails Engines: Where to define gems only used in testing)
  • 如何在android中的texviews中随机设置文本?(How to randomly settext in textviews in Android?)
  • PHP函数 - 用.00清理数字(PHP Function - cleaning up numbers with .00)
  • 如何在WPF中数据绑定到IGrouping?(How do I databind to a IGrouping in WPF?)
  • 在更新语句中增加时是否存在并发问题[复制](Are there concurrency issues when incrementing in update statement [duplicate])
  • RabbitMQ与NodeJS Addon for C ++应用程序集成(RabbitMQ vs NodeJS Addon for C++ Application Integration)
  • 使用CoreData执行乘法(聚合):如何?(Performing multiplication (aggregation) with CoreData: how to?)
  • 如何在Android中按位置显示Listview中的项目(How to display Item from a Listview by position in Android)
  • 无效的命令ProxyRequests设置jenkins时(Invalid command ProxyRequests when setting up jenkins)
  • C#,MySQL - 从表中检索行并在方法中填充变量,然后将Add()方法填充到List <>(C#, MySQL - Retrieve row from table and populate variables in method then Add() method to List<>)
  • 如何从内部拒绝承诺功能(How to reject a promise from inside then function)
  • javadoc for String [] args(javadoc for String[] args)
  • Laravel格式查询json结果(Laravel format query json result)
  • ImageIO - 从加载的图像中获取图像宽度和高度(ImageIO - get image Width and Height from loaded image)
  • 如何在Windows 7中批量重命名文件名,以便它们在结尾处具有数字顺序?(How do I batch-rename filenames in windows 7, so that they have numerical order at the end of them?)
  • 限制用户在Apple应用商店中撰写有关该应用的评论(Restrict user to write review about the app at Apple app store)
  • 亚马逊Kindle Fire中的java.lang.OutOfMemoryError(java.lang.OutOfMemoryError in Amazon Kindle Fire)
  • 如何使用C#在python中将字符串作为命令行参数传递(How to pass string as command line argument in python using C#)
  • 发生操作时使用ngrx-effect调用服务(Use ngrx-effect to call a service when an action occurs)
  • 在Android应用程序中集成所有社交资源(Integrating All Social Feeds In an Android App)
  • 哪些对象需要产前诊断?
  • 在React模板渲染上调用函数(Call function on React template render)
  • 如何将图标添加到SlidingTabLayout?(How to add Icons to SlidingTabLayout?)
  • 根据给定的数字数组创建一个几乎唯一的标识符(Create an almost unique identifier based on a given array of numbers)
  • 使用样式标签更改鼠标上方的文本颜色(Change text color on mouse over using the style tag)
  • Ruby String#{}不起作用(Ruby String #{} doesn't work)
  • 字符串和指针(Strings and pointers)
  • 中小学教师信息技术应用能力提升全员培训要求教师每五年不少于学时的培训标
  • 无法传递函数值来设置数组大小C ++(Can't pass a function value to set an array size C++)