Libev是一個用C編寫的功能齊全的高性能的羽量級事件驅動庫,其支援多種後臺IO複用介面,並且可以註冊多達十幾種事件。
支援的後臺IO複用介面:
select poll epoll kqueue solaris event port |
支援的事件類型:
ev_io // IO可讀可寫 ev_stat // 檔案屬性變化 ev_signal // 信號處理 ev_timer // 相對計時器 ev_periodic // 絕對計時器 ev_child // 子進程狀態變化 ev_fork // fork事件 ev_cleanup // event loop退出觸發事件 ev_idle // event loop空閒觸發事件 ev_embed // 嵌入另一個後臺迴圈 ev_prepare // event loop之前事件 ev_check // event loop之後事件 ev_async // 執行緒間非同步事件 |
Sample
/* // stop timer at counter == 10 void showNowTime(); int counter = 0; void timeout_cb(struct ev_loop *loop, struct ev_timer *w, int revents){ if(counter == STOP) int main(){ void showNowTime(){ |
執行結果
安裝libevent
1.下載libevent
wget http://dist.schmorp.de/libev/libev-4.22.tar.gz
2.解壓縮
chmod 777 libev-4.22.tar.gz
tar -xvf libev-4.11.tar.gz
3.配置與安裝
./configure
make
sudo make install
4.設定環境變數
export LD_LIBRARY_PATH=/usr/local/lib
5.編譯翻譯程式
gcc -o timer_sample timer_sample.c -lev
./timer_sample
參考資料
http://c4fun.cn/blog/2014/03/06/libev-study/
https://www.ibm.com/developerworks/cn/aix/library/au-libev/
https://cnodejs.org/topic/4f16442ccae1f4aa270010a3
留言列表