分类: 技术

263 篇文章

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…
PHP扩展开发:第一个扩展
在上一篇文章《PHP扩展开发:安装PHP》我们已经将开发PHP扩展的PHP环境安装成功,那么接下来采用最简单直接的方式创建第一个扩展。 我们先假设业务场景,是需要有这么一个扩展,提供一个叫ccvita_string的函数,他的主要作用是返回一段字符。(这个业务场景实在太假,大家就这么看看吧)对应的PHP代码可能是这样: function ccvit…
PHP扩展开发:安装PHP
前言 在几种情况下,我们会需要进行PHP扩展开发: PHP本身无法访问的资源或是调用,通过扩展的方式可以实现处于性能和效率的考虑,用C实现会更好处于商业或代码保护考虑,将代码封装起来为了更深入的了解PHP,从这里入门 不管是出于什么原因吧,在看这篇文章的时候,我默认你是有进行PHP扩展开发这个需求的。本篇文章会分为三个系列从安装、简单实现一个扩展、…