首页 Linux 在Linux中传递PHP和C可执行文件之间的数据

在Linux中传递PHP和C可执行文件之间的数据

在 Linux下,如果我想将纯字符串从 PHP传递给C,我该怎么做? 我尝试过的是: exec(./myexec.bin -a mystring); 在PHP和 getopt(argc,argv, a:); 在C. 一切正常,但是当我传递字符串而不是MAX_ARG_STRLEN(131072)时,它将不再返回0而是返回127,这是命令未找到….


Linux下,如果我想将纯字符串从
PHP传递给C,我该怎么做?

我尝试过的是:

exec("./myexec.bin -a mystring");

在PHP和

getopt(argc,argv,"a:");

在C.

一切正常,但是当我传递字符串而不是MAX_ARG_STRLEN(131072)时,它将不再返回0而是返回127,这是命令未找到….

有没有其他方法将字符串数据传递给Linux可执行文件?或者有什么方法可以克服MAX_ARG_STRLEN问题吗?

解决方法

您可以使用
popen()打开可执行文件的管道:

$fp = popen('./myexec.bin','w');
fwrite($fp,$data);
pclose($fp);

然后,如前所述,从C程序中的stdin读取:

fopen(stdin,"r");
// ...

使用popen()而不是exec(‘/ bin / echo’)是“更安全”的,因为你可以编写本来由shell解释的字符(&,|,…).请注意,必须使用pclose()关闭从PHP的popen()返回的句柄.

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/zhonghe/fwq/linux/20201230/14060.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部