Introduction
libuv强制异步,事件驱动编程.它的核心功能是提供一个事件队列和回调机制基于IO提醒和其他活动. libuv 提供核心的功能包括 timers, non-blocking networking support, asynchronous file system access, child processes等.
Hello world
以下代码建立了一个 uv_loop_t
来监听实践, 因为这个loop并没有任何监听事件,所以会马上结束.
也可以直接使用 uv_default_loop()
来直接获取使用 libuv 默认的 loop
#include <stdio.h>
#include <stdlib.h>
#include <uv.h>
int main() {
uv_loop_t *loop = malloc(sizeof(uv_loop_t));
uv_loop_init(loop);
printf("Now quitting.\n");
// 下面可替换为 uv_run(uv_default_loop(), UV_RUN_DEFAULT);
uv_run(loop, UV_RUN_DEFAULT);
uv_loop_close(loop);
free(loop);
return 0;
}
Handles and Requests
用户需要通过注册 Handles
来监听自己所感兴趣的事件(event). 这里的 handles 其实与 c# 中的 event 是有些相似的, 就是一种事件. libuv 中的 handles 是一种数据结构, 都是使用 uv_TYPE_t
来