再谈对非阻塞的理解

一般来说,现在大家 epoll 都是搭配着非阻塞 IO 一起用的,要问为什么?大家都这么用的啊,而且异步嘛,非阻塞嘛,很自然嘛 但是,非阻塞 IO 具体是怎么对 send 和 recv 起作用的。一般理解,我们之所以要用非阻塞,是为了避免这种情况: 客户端跟我们 tcp 三次握手完了,我们 listen fd 上得到一个 IN 事件了,然后 acc……

阅读全文

getdatetimestr

下午写了这么一个函数 char* getdatetimestr() { static char datetimestr[32] = {0}; static time_t last_update_time = 0; struct timeval tv = {0}; gettimeofday(&tv, NULL); time_t nowtime = tv.tv_sec; if (nowtime != last_update_time) { last_update_time = now……

阅读全文

写一个日志模块

今天在写一个日志模块,遇到一些问题,学到了一些东西,记一下。 一开始想到,cpp 这么成熟的社区,日志这么基本的模块,应该现成的有很多吧,随便找一个来用就可以了,上网搜了一圈,发现真是一团混乱啊,看到这里,http://blog.csdn.net/junchaox/… 待选为 glog、log4cplus、log4cpp、log4cxx 目前准备使用glog,……

阅读全文

cc 和 cpp 混合情况的 makefile

今天需要写一个 makefile,项目里面有 pb 生成的 cc 和 cpp 文件,分别要生成各自的 obj,以前没有遇到过这种 cc 和 cpp 混合的情况,上网找了一下,找到这个模版,http://lcinx.blog.163.com/blog…: # # c.cpp混合编译的makefile模板 # # BIN = test.exe CC = gcc CPP = g++ #这里只加入库头文件路……

阅读全文

GCC “-fomit-frame-pointer”编译选项的含义

在 makefile 中看到这个编译选项,不太理解于是查了一下,相关的东西还不多,抄一下放在这里 首先这个文章,http://blog.csdn.net/byzs/arti…,讲的不错,挺清晰的: 优化你的软件时,发觉”-fomit-frame-pointer”这个选项还是蛮有用的。 GCC手册上面这么说: Don’t keep the frame pointer in a……

阅读全文