Tag: 事件处理

libevent EVLOOP_NO_EXIT_ON_EMPTY不工作?

我不明白EVLOOP_NO_EXIT_ON_EMPTY标志应该如何在libevent的2.1.x版本中工作。 如果我没有向event_base添加任何事件 event_base_loop(my_base, EVLOOP_NO_EXIT_ON_EMPTY); 呼叫立即返回,这根本不是我认为它应该做的。 如果我添加一个事件,它会循环播放该事件,直到它处于活动状态,然后循环退出,我希望不会发生。 目标: 打开命名管道并解读读取。 每当我 echo “something” > pipe 应该调用注册的回调。 如果回调已完成,则事件将返回到挂起状态,并且循环等待另一个回显。 这是我到目前为止所得到的:(错误检查省略) #include #include #include #include #include #include #define PIPE “/tmp/ev_pipe” void cb_func(evutil_socket_t fd, short what, void *arg) { printf(“foo\n”); } int main(void) { /* create & open named pipe */ mkfifo(PIPE, 0666); int socket = open(PIPE, O_RDONLY | O_NONBLOCK); /* […]

查找连接到/ dev / input / eventX的设备的描述

我有一个程序正在侦听某个事件文件句柄。 是否有一个文件我可以阅读以获取有关我正在收听的特定事件设备的详细信息?