mybatisplus怎么接收count()值_怎么样“抄“一个PHP扩展

本文介绍了如何在PHP中开发一个扩展,模仿实现sendfile函数,以提高读取文件的性能。通过分析现有扩展的源码,学习如何接收参数、转换数据类型,并调用系统级别的sendfile函数。文章还分享了编写单元测试和编译扩展的过程。
摘要由CSDN通过智能技术生成

写一个WEB服务器,如果用file_get_contents从磁盘中读取文件,并发直线下降,用sendfile可以提升性能。但是PHP不支持,开发扩展我又不会,只能靠抄袭PHP扩展源码维持一下生活这样子。

看一下sendfile的原型:

0d751b982c3185654f11372f5ccd1797.png

这个函数在linux2.6.3之前的内核,out_fd只能是socket类型。

我们要实现的sendfile的PHP函数原型也差不多,为了简单,我就不要offset这个参数了,而且规定out_fd必须是stream类型的资源,in_fd必须是普通文件类型的资源:

mixed sendfile(resource $out_fd, resource $in_fd, int $count);

生成开发骨架,怎么办,不会,Google一下,好像运行个命令就可以了:

php ./ext_skel.php --ext church
cd church

我用的php7.3版本,好像无需手动去注释,也好,省事。按照网上的教程,不管三七二十一,先复制一份 PHP_FUNCTION(sendfile) .

PHP_FUNCTION(sendfile)
{
}

接下来咋办?我又不会,只能看看别人怎么搞的,到ext里面找找,好像都得先接收传过来的变量。唉,试试吧,我又不会能怎么办。

PHP_FUNCTION(sendfile)
{
zval *out;
zval *in;
zend_long count = 0;
ZEND_PARSE_PARAMETERS_START(3, 3)
Z_PARAM_RESOURCE(out)
Z_PARAM_RESOURCE(in)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值