osx下安装
brew install libevent
brew install –HEAD libuv
xcode配置
Header Search Path
/usr/local/include
Other Link Flag
-l”uv”
-l”event”
exam
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <event.h>
#include <uv.h>
int64_t counter = 0;
// 定时事件回调函数
void onTime(int sock, short event, void *arg)
{
printf("Hello,World!\n");
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
// 重新添加定时事件(定时事件触发后默认自动删除)
event_add((struct event*)arg, &tv);
}
void wait_for_a_while(uv_idle_t* handle, int status) {
counter++;
if (counter >= 10e6)
uv_idle_stop(handle);
}
int eventest(){
// 初始化
event_init();
struct event ev_time;
// 设置定时事件
evtimer_set(&ev_time, onTime, &ev_time);
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
// 添加定时事件
event_add(&ev_time, &tv);
// 事件循环
event_dispatch();
return 0;
}
int main(int argc, const char * argv[]) {
uv_idle_t idler;
uv_idle_init(uv_default_loop(), &idler);
uv_idle_start(&idler, wait_for_a_while);
printf("Idling...\n");
uv_run(uv_default_loop(), UV_RUN_DEFAULT);
printf("exit...\n");
eventest();
return 0;
}