多路复用epoll函数组

epoll函数组

/*创建epoll句柄*/

int epoll_create(int size);//size参数实际上已经被弃用

/*epoll句柄的控制接口*/

int epoll_ctl(int epfd,int op,int fd,struct epoll_event *event);

        epfd:epoll专用的文件描述符,epoll_create()的返回值

        op:表示动作,用三个宏来表示:

                EPOLL_CTL_ADD:注册新的fd到epfd中;

                EPOLL_CTL_MOD:修改已经注册的fd的监听事件

                EPOLL_CTL_DEL:从epfd中删除一个fd;

        fd:需要监听的文件描述符

        event:告诉内核要监听什么事件

typedef union epoll_date {

        void *ptr;

        int fd;

        __uint 32_t u32;

        __uint64_t u64;

}epoll_date_t;

struct epoll_event {

        __uint32_t events;

        epoll_date_t date;

}

epoll_event结构体

多路复用epoll函数组_第1张图片

 

/*等待epoll文件描述符上的I/O事件*/

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

        epfd:epoll专用的文件描述符,epoll_create()的返回值

        events:分配好的epoll_event结构体数据,epoll_wait 将会吧发生的事件赋值到events数组中

        maxevents:events数组的元素个数

        timeout:超时时间,单位为毫秒,为-1时,函数为阻塞

你可能感兴趣的:(算法,数据结构)