07 2015 档案
摘要:段错误或者其他导致程序退出的错误一直以来都像蛮不讲理的莽汉一样,把我们辛辛苦苦开发的程序肆意破坏掉,留下一个或大或小的core文件让我们头疼去,我们痛哭流涕之后默默承受这份忧伤。。。段错误由SIGEGV产生,可以被用户捕捉,也就给了我们保存程序重要数据的机会,借用glibc某函数处理SIGEGV的一...
阅读全文
摘要:让我觉得惊艳的设计:魔兽争霸的视频设计,魔兽一正常比赛大概需要1个小时时间,录制视频却很小,源自于war3独出心裁的设计,war3的视频只是记录了一串随机数以及角色的操作,并没有保存任何图像,视频文件用客户端打开后解析角色动作判断遭遇、战斗、逃跑等动作,然后根据随机数进行数次计算,先是计算命中、然后...
阅读全文
摘要:memcached本身是不支持集群的,集群所关注的容灾、容错、宕机恢复机制统统都没有,实战中需要自己实现容灾机制。memcached集群相比memcached的优势:巨量数据分布到集群的多台应用主机可以降低带宽压力、数据访问时间。memcached集群相比未集群的多台memcached的优势:集群...
阅读全文
摘要:getopt是linux下解析命令行参数的api。以linux内核代码的一个例子来说明:static void cmdline(int argc, char *argv[]){ int opt; progname = basename(argv[0]); while ((opt = getopt(...
阅读全文
摘要:目标场景是这样的: 多线程的应用程序要频繁打一些小字节的日志,也不想引用很重的日志库。 设想了一个极其简单的日志组件,main线程中重定向stdout到文件,同时setbuffer设置一个10k的缓冲区,工作线程直接向stdout输出日志。 很简单,但是有些担心,多线程写同一个文件会不...
阅读全文
摘要:看memcached代码的时候学习了一个api,setbuf,可以设置文件流的缓冲区。 #include void setbuf(FILE *stream, char *buf); void setbuffer(FILE *stream, char *buf, size_t size); void...
阅读全文