工作内容:
学习Libevent,两个文档:《libevent源码深度剖析(张亮)》,《libevent中文帮助文档》(都有可下载的文档),建议边看文档边看源码,先了解一下event、event_base以及一些常用函数,然后完整的看一遍源码深度剖析(内容比较少看,可以比较快的深入了解一边),然后看中文帮助文档查漏补缺。
实际操作,遇到麻烦,git上的安装说明和源码不搭呀?准备在家里的电脑上尝试一下libevent的编程。
09-19补充:https://blog.csdn.net/luotuo44/article/category/2435521/1
家里的测试:
1. 虚拟机是Ubuntu,首先安装git就遇到了麻烦,囧。最后在git官网上找到的可行的安装命令: sudo apt install git-all
2. 怎么安装libevent
2.1 发现个不正经的网站?http://www.howtoinstall.co/
2.1.1 咦,在这个网站上找了一下,libevent还真有core、dev、extra、openssl等等各种版本,什么情况?
2.2 其实安装很简单,从 libevent.org官网上下载发行版软件包,然后按 README.md 里说的做就可以了。
2.2.1 运行 make verify 进行环境测试的时候有一个报错,看不懂,没管它,sudo make install 好像没什么影响。
2.3 git上下载的代码好像有问题,反正我是安装不了。
3.编译还是有问题,编译器找不到 libevent。解决参考:https://blog.csdn.net/move_now/article/details/77585464
3.1 编译时需要增加 -levent 选项: gcc test.c -o test -llibevent
3.2 还需要对libevent做软链接(否则运行时提示找不到so),ln -s /usr/local/lib/libevent-2.0.so.5 /usr/libevent-2.0.so.5 我也不知道为什么明明编译libevent时是用的 2.0.22 编译后的so却是 2.0.so.5 黑人问号脸?
4.我的示例代码:https://www.cnblogs.com/laymond/p/9612514.html
vim
写代码测试的时候发现ubuntu上的vi好像有问题??特么回车键、删除键和方向键都不支持的吗??
灵机一动,用vim试了试,真特么好用。
socket:
看编程实例的发现:
TAILQ_INIT 原来linux里队列是这么用的吗,函数都改成宏定义了。参考资料
1 //queue.h 2 3 #define TAILQ_INIT(head) do { 4 (head)->tqh_first = NULL; 5 (head)->tqh_last = &(head)->tqh_first; 6 } while (0)
*刚开始看到了一个错误的博客,蛋疼,看的都怀疑自己的水平了。
关于《STTY修改串口命令后一按回车操作就被复位的问题》!
因为在《Unix环境高级编程》中 tty 后面一节紧接着就是讲伪终端,所以留了个心,周末晚上终于有线索了。
1. http://www.360doc.com/content/11/0126/16/3508740_89170485.shtml 在这片文章中有一个“stty -onlcr < /dev/pts/0”的示例,我试着用终端1修改了终端2的参数,果然!!!终端2一按回车参数就复位了!!!卧槽!!!下周一定要详细看看伪终端的章节!!
2. 还有2篇没看,太激动了看不想去了,留着周一看,感觉会有线索:
http://www.360doc.com/content/09/0926/15/26398_6464170.shtml 有一句写道“在头两行中,显式地告诉 devfsd ,当内核中注册了任何伪终端设备或当它们的属性被更”