c语言libevent使用笔记(自用版-非博文)
libevent笔记
只是简单的介绍点接口,具体深入,看项目需求学习
有名管道 * mkfifo("fifo_1",0664) --创建有名管道文件 * open("fifo_1",O_RDWR) --打开管道文件,读写方式,返回文件描述符 管道-libevent * event_init() --创建事件底座,返回一个底座描述符,一般用event_base_new()会更灵活 * struct event --事件类型结构体 * event_set() --绑定文描和事件监听属性,并建立事件发生时调用的方法(回调函数),这个接口作用同event_assign()一致。只不过本接口使用默认事件底座,不用自己传入event_base,前提是底座是由event_init()接口创建 --事件,被关联的文件描述副/信号,事件属性/信号值,回调函数,回调函数参数 --事件属性 EV_READ //事件读属性 | EV_PERSIST //事件循环属性 * event_add() --将事件添加到底座中,第二个参数写NULL就好 * event_dispatch() --监听底座中的事件,若没有则直接返回。比event_base_dispatch()少一个参数,但作用相同
信号 * 一般我们需要通过信号处理一些事情时,往往用的是singal() //接口来接收后设定属性方法, kill() //接口来发送, kill -信号 -进城号 //命令来发送 * ps ajx --可查看进程号 * kill -l --查看系统提供的信号 信号-libevent * event_base_new() --创建事件底座,返回一个事件底座变量,用完需要通过event_base_free()手动释放 * struct event * event_assign --绑定文描和事件监听属性参考 sevet_set() * event_add() * event_base_dispatch() --监听底座中的事件,若没有则直接返回 * event_base_free() --释放事件底座
TCPserver * event_base_new() * evconnlistener_new_bind() --创建监听对象,在回调函数的传出参数中得到通信文描。 由于TCP的前五步都封装到了这一个函数中,所以参数会比较多 --属性设置 LEV_OPT_CLOSE_ON_FREE | LEV_OPT_REUSEAVLE * event_base_dispatch() * evconnlistener_free(监听对象/事件) --释放创建的监听对象 * event_base_free() 在监听对象的回调函数中 * bufferevent_socket_new() --创建缓冲区对象,并将其绑定的通信文描插入底座中。 -- 属性设置 BEV_OPT_CLOSE_ON_FREE * bufferevent_setcb() --设置缓冲回调函数(缓冲区对象,读,写,其他,参数) 一般设置读来读,写的话不用非在回调函数中,其他回调一般用于客户端退出时汇报和清理垃圾。 参数若虚传入,可以组一个结构体,并分配堆区空间后,接收复制我们fd,sockaddr的内容(由于这两个传出参数在栈区,无法直接传) * bufferevent_enable() --使能缓冲区对象/事件 -- 属性设置 EV_READ | EV_PERSIST * 在事件回调函数中,属性值为 BEV_EVENT_EOF 时,为客户端退出事件 * 客户端退出记得释放 通信对象/事件 * bufferevent_free() --释放通信对象/事件
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 道远日暮时不存!