c
zhxp_870516
这个作者很懒,什么都没留下…
展开
-
Nginx模块开发—数组模型
1、数据结构struct ngx_array_s { void *elts; //数组数据区起始位置 ngx_uint_t nelts; //实际已存放的元素个数 size_t size; //每个元素大小,可用sizeof获得大小 ngx_uint_t转载 2013-04-22 14:40:40 · 1282 阅读 · 0 评论 -
Nginx模块开发—队列模型
1、数据结构struct ngx_queue_s{ ngx_queue_t *prev; ngx_queue_t *next;};备注:nginx的队列是由具有头节点的双向循环列表实现的,每个节点结构为ngx_queue_t,sizeof(ngx_queue_t)=8,nginx的队列结构里并没有其节点的数据内容。2、队列操作ngx_q转载 2013-04-22 15:31:12 · 584 阅读 · 0 评论 -
mmap详解
原文地址:http://kenby.iteye.com/blog/1164700共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共转载 2013-04-19 14:11:58 · 471 阅读 · 0 评论 -
如何 fork n 个进程(n > 2)
原文地址:http://kenby.iteye.com/blog/1165923讲到fork, 一个经典的例子如下:if ((pid = fork()) == 0) { printf("in child %d\n", getpid());} else if (pid > 0) { printf("in parent\n");} else {转载 2013-04-19 15:29:41 · 517 阅读 · 0 评论 -
编写PHP扩展
用C/C++扩展PHP的优缺点:优点:效率,还是效率减少PHP脚本的复杂度, 极端情况下, 你只需要在PHP脚本中,简单的调用一个扩展实现的函数,然后你所有的功能都就被扩展实现了而缺点也是显而易见的:开发复杂可维护性降低开发周期变长, 最简单的一个例子,当你用PHP脚本的时候, 如果你发现某个判断条件出错,你只要修改了这一行,保存,那么就立刻能见原创 2013-04-02 14:22:48 · 810 阅读 · 0 评论 -
PHP变量的存储
<!--h4 {margin-top:0.49cm; margin-bottom:0.51cm; direction:ltr; color:rgb(0,0,0); line-height:156%; text-align:justify; page-break-inside:avoid}h4.western {font-family:"Arial",sans转载 2013-04-27 17:35:09 · 886 阅读 · 0 评论 -
PHP的HashTable结构
HashTable是Zend引擎中最重要、使用最广泛的数据结构,它被用来存储几乎所有的东西。1.2.1 数据结构HashTable数据结构定义如下:typedef struct bucket { ulong h; // 存放hash uint nKeyLength; void *pData; // 指向value,是用户数据的副本 void *pDataPtr;转载 2013-04-27 17:59:28 · 924 阅读 · 0 评论 -
PHP内核探索:zend_parse_parameters函数
转载地址:http://www.nowamagic.net/librarys/veda/detail/1467最简单的获取函数调用者传递过来的参数便是使用zend_parse_parameters()函数。zend_parse_parameters()函数的前几个参数我们直接用内核里宏来生成便可以了,形式为:ZEND_NUM_ARGS() TSRMLS_CC,注意两者之间有个空格,但是转载 2013-05-08 16:52:46 · 918 阅读 · 0 评论