前端之家收集整理的这篇文章主要介绍了
在Linux中传递PHP和C可执行文件之间的数据,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在
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.f2er.com/linux/393181.html