struct epoll_event结构体

epoll 

 epoll查字典没有实际意思,是一种功能的名称。epoll实际上代表一种I/O事件操作,在Linux内核中实现I/O多路复用。

epoll_event

在项目中,会使用epoll_event设置结构体类型,temp在代码中配合epoll_create、epoll_ctl、send、accpet等等函数和文件描述符fd、地址结构体来实现通信。

标识清楚epoll_event的所有成员。

struct epoll_event temp;


struct epoll_event{
    _uint32_t events,
    epoll_data_t data,
};
/**  epoll_event.events=
   EPOLLIN:表示对应的文件描述符可以读;
   EPOLLOUT:表示对应的文件描述符可以写;
   EPOLLPRI:表示对应的文件描述符有紧急的数可读;
   EPOLLERR:表示对应的文件描述符发生错误;
   EPOLLHUP:表示对应的文件描述符被挂断;
   EPOLLET :ET的epoll工作模式;
*/
typedef union epoll_data{
    void *ptr,
    int   fd,
    _uint_32_t u32,
    _uint_64_t u64,
}epoll_data_t;
    

 在代码中就需要设置events的值和文件描述符fd。

另外还有使用epoll_create、epoll_ctl这类函数。

//size代表文件描述符的最大个数,不能为0
//返回值为整型的文件描述符形参epfd
int epoll_create(int size) 创建一个epoll实例


//epfd代表epoll实例
//op代表操作选项,EPOLL_CTL_ADD注册、EPOLL_CTL_MOD修改、EPOLL_CTL_DEL删除
//fd代表打开的流,需要关联的文件描述符
//*event代表需要关联的结构体
//返回值为0,失败返回-1
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) 对epoll实例进行操作



//epfd代表epoll实例
//event代表需要关联的结构体
//maxevents代表最大events个数
//timeout代表最大运行ms,设置可为-1,0,1,……
//返回值events个数,失败-1
int epoll_wait(int epfd, struct epoll_event *event, int maxevents, int timeout) 等待通信阻塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值