strlen

Posted by 夏泽民

https://blog.csdn.net/u013474436/article/details/53309028?utm_source=blogxgwz1 https://stackoverflow.com/questions/35006614/what-does-symbol-not-found-expected-in-flat-namespace-actually-mean https://stackoverflow.com/questions/18809986/undefined-reference-to-strnlen-s-strncpy-s-strncat-s https://www.hongweipeng.com/index.php/archives/1014/ strlen_s 是微软的库,mac不能用



gdb调试 php

Posted by 夏泽民

(gdb) run testmyFile.php Starting program: /usr/local/bin/php testmyFile.php Unable to find Mach task port for process-id 22822: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))

$sudo gdb php 这是因为 Darwin 内核在你没有特殊权限的情况下,不允许调试其它进程。调试某个进程,意味着你对这个进程有完全的控制权限,所以为了防止被恶意利用,它是默认禁止的。允许 gdb 控制其它进程最好的方法就是用系统信任的证书对它进行签名。 问题解决 https://segmentfault.com/q/1010000004136334



zend_string char

Posted by 夏泽民

zend_string 和char*不是一个东西,因此转换的时候特别注意 写扩展的时候遇到了一个bug 明明写进去了 add_assoc_long(MYFILE_G(my_func_set), func_name, timeElipsed); 但是取出来一直是0 zval* lastVal = zend_hash_find(Z_ARRVAL_P(MYFILE_G(my_func_set)),key); 排查发现key的类型不对 写进去是char* 取出来却是zend_string一定要注意



usr2

Posted by 夏泽民

nginx和php-fpm的进程启停重载总结 nginx和php-fpm对于-USR2、-HUP信号的处理方式不一样: TERM, INT(快速退出,当前的请求不执行完成就退出) QUIT (优雅退出,执行完当前的请求后退出) HUP (重新加载配置文件,用新的配置文件启动新worker进程,并优雅的关闭旧的worker进程, 用于nginx的加载新配置,不能用于php-fpm加载新配置) USR1 (重新打开日志文件) USR2 (平滑的升级nginx二进制文件/平滑加载php-fpm新配置) WINCH (优雅的关闭worker进程) php-fpm #关闭 kill -QUIT $php_fpm_pid



sub_array

Posted by 夏泽民

当你在扩展中使用 HashTable 时候,大部分情况下是要存储用户端的变量,就像 PHP 语言中数组那样。为此,内核中已经准备好了相应的工具,来让我们更加的方便的操作 HashTable 存储 zval*,也就是 PHP 语言中的数组,即 IS_ARRAY 常量代表的 zval,以下用 {数组} 来代替 PHP 语言中的数组这个词。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required