zoukankan      html  css  js  c++  java
  • poll系统调用

    1 #include <poll.h>
    2 int poll(struct pollfd* fds,nfds_t nfds,int timeout);

      fds,pollfd结构类型的数组(可变长数组,数组元素为结构体pollfd);结构体中含有三个成员变量(int,short,short),分别为文件描述符fd,注册的事件evevts(一系列事件的按位或),实际发生的事件revents;fd成员指定fd,events成员告诉poll函数监听fd上的哪些事件(可读,可写,异常事件),revents成员由内核对其进行修改,通知应用程序实际发生了哪些事件;

    1 struct pollfd
    2 {
    3         int fd; //文件描述符
    4         short events; //注册的事件,用户填充
    5         short revents; //实际发生的事件,内核填充
    6 };

      nfds,无符号长整型,被监听的fd的数量;

    1 typedef unsigned long int nfds_t

      timeout,设置poll函数的超时时间,单位为毫秒;

      返回值,timeout为0,poll调用立即返回;timeout为-1,poll调用一直阻塞,直到某个fd就绪。

          poll成功,返回就绪的fd的数量;(超时时间内没有fd就绪,返回0)

          poll失败,返回-1,并设置errno。

      poll事件的类型

      POLLIN-数据可读;POLLRDNORM-普通数据可读;POLLRDBAND-优先级带数据可读;POLLPRI-高优先级数据可读;

      POLLOUT-数据可写;POLLWRNORM-普通数据可写;POLLWRBAND-优先级带数据可写;

      POLLRDHUP-TCP连接对方关闭或者对方关闭了写操作;

      POLLERR-错误;POLLHUP-挂起;POLLNVAL-fd没有打开。

  • 相关阅读:
    从零自学Java-10.充分利用现有对象
    读书笔记-读《代码大全》有感
    从零自学Java-9.描述对象
    从零自学Java-8.创建第一个对象
    随机森林理解
    百度 前端 rem 适配 和 阿里 前端 rem 适配
    移动端 轮播
    楼层 跟随 js与jq
    js 滚动到指定位置(带step 速度)
    js 事件流
  • 原文地址:https://www.cnblogs.com/yongjin-hou/p/14348962.html
Copyright © 2011-2022 走看看