event + 线程池模型的 server 类似 Memcache线程池模型

/*
    main.h
    定义了三个数据结构 conn_queue_item,work_thread,dispatch_thread.
    conn_queue_item 只是存dispatch_thread accept 以后的描述符,然后
    dispatch_thread 将conn_queue_item 存入某一个work_thread.
    work_thread 真正负责work的thread.
    dispatch_thread 监听9877端口,并且将accept后的fd传给work_thread.
*/
#ifndef MAINH
#define MAINH

Memcache threads analysis

memcached 启动时线程处理流程

libevent demo

libevent 就是对select的封装.

network programming echo example

socket 描述符就跟 file 描述符一样.

Beanstalk 学习

看的Beanstalk第一版的代码,因为代码比较短.小组的分享

函数指针和指针函数

函数指针和指针函数区别. 指针函数. 返回值是指针的函数叫指针函数. 函数的返回值可以是int,char,double,struct,也可以是指针,指针函数就是返回值是指针的函数,也就是返回的是一个地址.比如: 

introduce awk

由于平常的工作都在linux下面进行,所以经常用到linux下面的awk,sed,grep等工具. 组内的一次分享.

Cola.php的默认配置以及url分发

cola.php 是一个叫付超群写得框架,可能对比较大型的框架理解不清楚,可以先看这个比较小型的. 0.1版就包含了框架里面最主要的几个文件,那些扩张功能还不包括在里面,非常适合让我们理解如何实现一个mvc框架的过程.

grep in awk

```shell awk ‘BEGIN {while (( getline < “f2” > 0 )) { f2[lc] = $0 ;lc++;}} { for (i=1; i<lc; i++) { if (match (f2[i], $1)) print f2[i];}}’ f1

vim 一些命令

  • x dw是删除单词用的  还有d$是删除到当前行的末尾 U 是用来作回复对当前行的修改
  • 还有就是 dd 完以后可以直接按p就可以实现复制粘帖 不过貌似只能对一行用
  • 然后就是修改句子中的某一个字符  就可以直接 r然后一个字符就修改光标处的 字符
  • cw 用来改变一个单词的部分或者全部  从光标在的那个地方修改
  • 同样c 和d 是一系列的 也有 c$ 就是修改的最后为止
  • ctrl-g 显示当前光标和文件状态
  • / 是用来做正方向查找,然后?是用来作反方向查找
  • %可以找到匹配的括号处
  • 替换的时候 如果要替换某一行,那么 直接 :s/thee/the/g 就可以直接替换thee为the了
  • :s/thee/the/gc 会加一次询问而已
  • 也可以先选中某一个区域块里面的进行修改,系统默认会多出一些<>什么东西,直接写上:s就可以了
  • 还有一种全屏替换的方法是  :%s/thee/the/g这样就可以了
  • 想执行外部命令直接加一个  :!就可以了
  • :10,20 w test 是把从几行到几行存起来
  • 然后 :r test是从这个文件中载入这个test 的文件
  • o是在本行下面打开新的一行,O是本行上面打开, Shif O 是在本行上面开一行,不过光标不转过去而已
  • a是光标后面一个插入,A是在本行的末尾插入
  • R是替换
  • 按住b是从后面往前面跳一个单词
  • ct!,这会删除从光标位置到下一个叹号(但不包括)   比如  ct{ 就算删除到 { 之前为止..
  • ‘’ 直接是跳回到光标 上一次在的地方
  • tabe 是在上面开一个东西,然后可以在vimrc 里面配置 就可以用 ctrl n ctrl p 来来回移动了 vim 在写 html 的时候有 比如 <h 1>sdfsdsdfsd </h 1> 那么 你 直接  dit  t 是 tab 的意思  意味着标签,就可以把 中间的东西删掉了   如果是 dat 的话 就连h1也一起删掉了
  • 同样在写其他的时候也一样  用 ‘dfdfdfd’  那么 就是  di’ 就是中间的东西删除掉  用 da’的话就连‘也一起删除了 fx移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
  • tx 和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
  • ” 这个符号是用来使用寄存器的 :reg 就可以列出来现在寄存器里面复制的东西
  • 我们要拷贝当前行到寄存器 k。你应该按 “kyy “kp 来粘贴寄存器 k 里面的内容到你想要的位置
  • 这个是用来设定搜索的时候要不要注意大小写(:set ic 和 :set noic)
  • dG 就是删除某一行下面的所有行  dgg 就是删除某一行上面的所有行
  • vim 里面复制的时候到某个地方 要把某几行先删除掉,然后再粘贴过去,应该是先复制好,然后在选择上要删除的那些行,然后p
  • yw 是复制某一个单词.
  • vim 里面 set ic 和 set noic 就是要不要大小写.