在Linux中传递PHP和C可执行文件之间的数据
发布时间:2020-12-30 11:27:41 所属栏目:Linux 来源:互联网
导读:在 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()返回的句柄. (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – 如何比较两个目录的大小?
- 让rsync仅报告已更新的文件
- 在Linux上查找Win exe所需的DLL(与mingw交叉编译)?
- 什么时候需要curl_global_init()?
- 使用私钥将TeamCity VCS Root与GitHub存储库连接
- How can I exclude directories from grep -R?
- linux – 如何在Redhat 6.5上安装Xvfb(X虚拟帧缓冲区)?
- linux – “biosdevname”如何真正起作用?
- 使用Postman工具/ cURL /在Chrome控制台中测试CORS
- linux – OCaml编译错误:/usr/bin/ld:找不到-lstr
推荐文章
站长推荐
热点阅读