引言
这篇博文可能有点水,主要将自己libuv的学习过程和理解. 简单谈方法. 有点杂. 那我们开始吧.
首先介绍 github . 这个工具特别好用. 代码托管. 如果不翻墙可能有点卡. 但是应该试试. 这里扯一点, github
对代码水平提高 太重要了.还有一个解决疑难问题的论坛 stackoverflow http://stackoverflow.com/.
真的屌的不行.
附赠
github 简易教程, 不用谢 http://www.nowcoder.com/courses/2
国内还有一个 逼格特别高的论坛, 哪天你nb了, 也可以上去装逼, 以其中一个帖子为例
知乎epoll讨论 http://www.zhihu.com/question/21516827
到这里关于 引言就结束了.
前言
现在我们开始说libuv, 这是个网络跨平台的库,是C库.比其它同类的网络库, 多了个高效编程.不需要考虑太多细节.
是node.js的底层. 自己学习了一两周,发现, 功能挺强大的.通用性好. 但总觉得有点恶心.后面有时间说. 总的而言很优秀,很好,
但不喜欢.
下面我来分享怎么学习libuv 首先 你要去 官网下载libuv 代码.
libuv github 源码 https://github.com/libuv/libuv 这时候你需要在你的linux上编译安装.
参照步骤就是 readme.md
这时候你肯定会出故障. 怎么做呢. 去 stackoverflow 上 找答案. google搜一下,都能解决. 我当时遇到一个问题是网关超时. 修改网关就可以了. 自己尝试,提高最快.
安装折腾你半天. 那我们 测试一下. 按照 libuv 中文版最后一个demo 为例
#include <stdio.h> #include <string.h> #include <uv.h> uv_tty_t g_tty; uv_timer_t g_tick; int g_width, g_height, g_pos; static void __update(uv_timer_t* req) { uv_write_t wreq; char data[64]; const char* msg = " Hello TTY "; uv_buf_t buf; buf.base = data; buf.len = sprintf(data, "