先来说一下使用套路:
1. 创建一个事件处理框架
2. 创建一事件
3. 事件添加到事件处理框架上
4. 开始事件循环
5. 释放资源
重要函数讲解:
消息循环:
未决 && 非未决
- 未决:有资格被处理但是还没有被处理
- 非未决:没有资格被处理
事件的状态转换
例子:
read
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <event2/buffer event.h>
//读操作处理函数
void read_cb(evutil_socket_t fd,short what,void *arg)
{
//读管道
char buf[1024] = {0};
int len = read(fd,buf,sizeof(buf));
printf("data len = %d,buf = %s\n", len, buf);