![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 59
linkaisheng101990
这个作者很懒,什么都没留下…
展开
-
Linux下Gcc生成和使用静态库和动态库详解(转)
一、基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。 本文仅限于介绍linux下的库。1.2库的种类 linux下的库有两种:静态库和共享库(动态库)。 二者的不同点在于代转载 2015-05-01 13:33:46 · 502 阅读 · 0 评论 -
zend_language_scanf & parse
zendlex -> yylex; zendparse -> yyparse原创 2016-04-16 17:24:34 · 364 阅读 · 0 评论 -
一些资料
http://www.cnblogs.com/chenpingzhao/p/4922246.html转载 2016-03-13 16:25:59 · 369 阅读 · 0 评论 -
关于php线程安全的一些东西
本篇文字转自:http://blog.codinglabs.org/articles/zend-thread-safety.html在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和转载 2016-02-28 14:35:53 · 625 阅读 · 0 评论 -
开发protobuf扩展的一些笔记
一个需求要接入公司内部的一个基于protobuf协议的接口,protobuf的库文件都是proto编译器生成的cpp文件。要编译成php扩展的话,需要c/c++混编,这里记录一下。1、升级一下安装的protobuf,貌似C1的机器上的protobuf都是2.4.0的,当编译高级的一些语法的proto文件的时候都会报错的,升级到2.5.0以上的版本好些。2、proto编译器会根据proto文件生成相关原创 2016-01-05 17:43:40 · 1960 阅读 · 0 评论 -
php7下的opcache特性导致的一个bug排查
首先这不是opcache的bug,我感觉这算是新特性导致代码不太兼容导致的,因为我们的代码在php5下是跑正常的。 最近在给我们的框架兼容php7,因为框架是扩展的形式,所以得针对新版的zend api修改。一些都OK了,在cli测试都是没问题的,感觉很爽。但是放到了php-fpm的环境下,打开opcache。一些乱七八糟的事情发生了,fpm启动后第一次请求是正常,第二次后就各种segmentfa原创 2015-11-27 17:42:15 · 4586 阅读 · 2 评论 -
调试fpm的一些小笔记
fpm状态下没法生成core文件的条件下调试比较麻烦。 1、core文件无法生成 1)、不能生成原因很多,比如不让生成,或者线上环境,或者core文件过大等等,anyway,就是各种不方便生成而且非要生成就得改一些参数还要重启重新登录等等乱七八糟的原因..。 2)、修改fpm的配置文件,让只生成一个fpm子进程。重启,获取该process ID。 3)、gdb && gdb原创 2015-11-27 17:43:32 · 1237 阅读 · 0 评论 -
一个轻量级的c编写的php接口平台框架
1、gihtub地址:https://github.com/linkaisheng/edge 2、程序流程图: 3、性能彪悍,文档待续..原创 2015-11-01 14:39:43 · 1542 阅读 · 0 评论 -
php扩展获取_ENV、_SERVER时踩到的坑。
最近写个router组件,需要获取SERVER这种超全局变量。发现在symbool_table里面死活拿不到,但是POST、GET的可以拿啊。。我就郁闷了,最后看了下初始化流程。发现坑爹的就排除了SERVER和ENV这2变量的初始化在symbool_table里面-。-。最后上了官网查到了这个,http://php.net/manual/en/ini.core.php#ini.auto-global原创 2015-06-05 18:38:20 · 1775 阅读 · 2 评论 -
关于php扩展中使用ini配置和使用全局变量
关于php扩展中使用ini配置和使用全局变量。有时候一段程序逻辑的方向修改,可以根据输入的数据进行修改,也可以直接去更改代码,但这样带来了灵活性的缺失和安全的问题,所以引入了php.ini配置文件,为了方便提供在ini里面配置。下面配置该全局。 首先,确定该全局变量是不是线程安全的(因为一个线程里面可能会提供多个request,考虑到数据共享带来的风险),主要下是否需要include “TSRM.原创 2015-05-10 20:51:01 · 4020 阅读 · 0 评论 -
yar框架的并行原理分析(libcurl+epoll)
yar是一个轻量级的php rpc框架。有意思的是它的并行,其实就是libcurl作为网络库提供http请求,然后用epoll做为事件监听来实现整个异步并行调用的。在此基础上,就是如何利用zend api来对整个逻辑的封装了。我们先抛开zend api,单独看看libcurl 结合 epoll 是如何来做到异步并行调用的。 先大致熟悉一下libcurl,官网http://curl.haxx.se/原创 2015-11-01 13:01:19 · 3001 阅读 · 2 评论