首页 > 后端开发 > php教程 > 用PHP写扩展来调用C语言函数接口有关问题

用PHP写扩展来调用C语言函数接口有关问题

WBOY
发布: 2016-06-13 13:49:57
原创
1025 人浏览过

用PHP写扩展来调用C语言函数接口问题
有没有人研究过用PHP写扩展来调用C语言函数接口?
我现在有个C语言函数接口,编译成.so文件。现在前台要调用这个C语言的接口,我网上查了下,要写PHP扩展,用PHP包装C接口成扩展模块。我测试过包装不带参数和带整型参数的C函数,可以让PHP调用成功,但是对于那些带指针参数的C函数,包装写成扩展之后,却调用不成功。一直不明白原因出在哪里。我的代码如下,请高人指教。
C函数:(最后编译成libtest.so文件)
char * test(char *arg)
{
  return arg;
}

写一个PHP模块 phptest:
再phptest.c文件里代码如下:
155 PHP_FUNCTION(test)
156 {
158 char *arg;
159 int arg_len;
160 char *result;
161 // int result_len;
162 
163 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
164 return;
165 }
166 result = (char *)emalloc(50);
167 
168 result =memcpy(result,test(arg),50);
169 // result = "hello abc";
170 RETURN_STRING(result,1);
171 }


------解决方案--------------------
最近在研究C,关注下
------解决方案--------------------

探讨
有没有人研究过用PHP写扩展来调用C语言函数接口?
我现在有个C语言函数接口,编译成.so文件。现在前台要调用这个C语言的接口,我网上查了下,要写PHP扩展,用PHP包装C接口成扩展模块。我测试过包装不带参数和带整型参数的C函数,可以让PHP调用成功,但是对于那些带指针参数的C函数,包装写成扩展之后,却调用不成功。一直不明白原因出在哪里。我的代码如下,请高人指教。
C函数:(最后编译成libt……
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板