(一)、libevent库基础的5步模型
1、创建1个底座
event_base_new()函数
2、创建1个事件
event_new()
3、把事件插到底座上
event_add()
4、循环监听事件是否满足, 一旦满足调用x事件设置的回调函数
event_base_dispatch()
5、销毁1个事件
event_free()
销毁底座
event_base_free()
(二)、程序
1 、读管道程序
#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/event.h>
void sys_error(const char *str)
{
perror(str);
exit(1);
}
// 一旦事件满足, 回调的函数
void func(evutil_socket_t fd, short what, void *arg)
{
// 读事件满足 = 命名管道中有数据到达
int n;
char buf[BUFSIZ];
// 读管道
n = read(fd, buf, BUFSIZ);
printf("从管道内读到的字节数: %d, 内容: %s\n", n, buf);
}
int main(int argc, char *argv[])
{
// 1、创建1个命名管道 myfifo
int fd;
int ret;
ret = unlink(