年度归档: 2012 年

9 篇文章

MooC的一些设计思路
题外话 由于公司业务需要用C做一些实现,和C++不同的是,C并没有太多的库和方案供选择,所以我们只好自力更生,努力重复造车轮。 做技术十来年的时间,说实话底层技术框架自己也写过不少个,不管是个人业余作品,还是公司业务需要的,又或者是参加开源项目所实现的,底层技术框架面临着设计、解决、实现各个方面的问题。这次MooC的设计希望能够首先满足业务的诉求,…
Epoll在LT和ET模式下的读写方式
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unava…
VPS下CentOS装机记录
记录下来备忘 修改hostname vim /etc/sysconfig/network 添加用户 useradd kimi passwd kimi sudo无需密码 vim /etc/sudoers 在尾部加入以下内容 User_Alias DEV = kimi DEV ALL = NOPASSWD: ALL 免密码用key登录 #用kimi帐号…
Linux下protobuf-c的安装
前言 最近需要用到Google出的Protocol Buffer来做一些服务相互之间的通讯,由于Protocol Buffer原生没有对C的支持,只能使用protobuf-c这个第三方库,加上网上也没有完整的安装方式,就记录下来了。 Protocol Buffer是什么? Protocol Buffer是一种语言无关、平台无关、扩展性好的用于通信协…
POSIX线程不安全函数
这几天调bug,该bug的特点是随机出现,而且不可重现!找了一天之后,终于发现,是因为在多线程函数中用了线程不安全的strtok函数导致的。 char strtok(char s, const char *delim); 功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 说明:strtok()用来将字符串分割成一个个片段…
Linux下常用I/O模型
简介 Linux异步I/O是Linux内核中提供的一个相当新的增强。它是2.6版本内核的一个标准特性,异步非阻塞I/O背后的基本思想是允许进程发起很多I/O操作,而不用阻塞或等待任何操作完成。稍后或在接收到I/O操作完成的通知时,进程就可以检索I/O操作的结果。 这并不是一个详尽的介绍,但是我们将试图介绍最常用的一些模型来解释它们与异步I/O之间的…
Typecho中文验证码Captcha插件
前言 实在是受不了每天都要删除掉上百条的垃圾评论,干脆自己做了个验证码插件,顺带做的完善了些,分享给大家。 本插件是在评论验证码插件基础上完善而来。所不同的是,采用了最新的securimage 3.0.1,并且支持支持Sina App Engine环境,同时将大部分的配置选项放在了插件设置中,方便新手使用。 安装 首选,点击下载本插件; 其次,将C…
推荐Mac软件Alfred
实在忍不住推荐这个软件了, 身边的朋友们逐渐都在使用Mac OS了,每次我都会推荐Alfred这个软件。推荐来推荐去挺蛮烦的,干脆写篇文章, 下次有朋友新入手Macbook,我就直接附送本文章链接一枚。 Alfred是什么 Alfred是一个依靠键盘操作来提升Mac OS X使用效率的工具,它可以让打开程序、搜索互联网、执行常用命令加速。原文介绍是…
POSIX定时器:timer_settime()
最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。 创建一个定时器 int timer_create(clockid_t clock_id, struct sigeve…