c
coding快乐
技术渣渣,需要多学习才能进步。
展开
-
epoll学习笔记1
简介epoll是同poll相似的,用于同时监听多个fd上的相关I/O事件。epoll相较于poll而言有边缘触发和水平触发两种事件触发模式,poll只有水平触发一种事件触发模式。事件触发模式介绍水平触发水平触发(Level-Triggered)是当被监控的fd上有可读写事件发生时,epoll_wait会通知程序去读写。如果程序在这次操作没有将数据全部读写完(可能由于缓冲区不够),那么下次调用epoll_wait时仍然会通知程序去读写,直到数据被读写完为止。优点: 开发时每次读写操作只需要读写想要的原创 2020-11-11 19:11:37 · 819 阅读 · 0 评论 -
gcc对数组初始化对扩展
背景今天研究一个问题时看linux的内核代码,偶然间发现一段有趣的代码。直接上图:从图中代码可以看出这是一个int数组,并且对该数组进行了初始化。但有意思的是本代码中数组初始化中使用了数组下标,并且还可以批量初始化。用例测试用例代码文件名称test.c内容:#include <stdio.h>#define TEST_MAX 10static int test_int_arr[TEST_MAX] = { [0 ... TEST_MAX-1] = -1, [原创 2020-11-06 18:00:02 · 709 阅读 · 0 评论 -
libevent学习笔记1,简介
简介libevent是一个事件驱动型的跨平台的网络通信基础库。libevent支持包括:/dev/poll、kqueue(2)、select(2)、poll(2)、epoll(4)、evports等在内的多种异步通信模型。同时,支持在Linux、 *BSD、Mac OS X、Solaris、Windows等多种类型的操作系统上编译使用。libevent遵循BSD开源协议。源码结构介绍版本libevent-release-2.1.7-rc代码目录结构xxxx$ tree.├── CMakeLi原创 2020-10-30 15:55:57 · 12597 阅读 · 2 评论