我有这个小程序从stdin获取输入 sample.c文件
#include<stdio.h>
main()
{
int l=0;
scanf("%d",&l);
printf("\n%d",l);
}
ofcourse!编译它:cc sample.c并得到a.out 我试图通过PHP运行它
$runcmd = "./a.out > output.txt";
exec($runcmd,$outp);
print_r($outp);
我的问题是我不知道如何为这个程序提供输入,以便scanf可以读取它? 请帮帮我!
谷歌搜索了一些提示,比如proc_open,popen ....但我无法做到。先谢谢。
答案 0 :(得分:2)
看看popen http://se1.php.net/popen
它的工作方式有点像fopen,当使用fwrite时,写入文件,你可以写入一个stins stted insted。
$runcmd = "./a.out > output.txt";
$process_stdin = popen($runcmd, 'w');
fwrite($process_stdin, "text to send to process");
pclose($process_stdin);
答案 1 :(得分:1)
为什么不将它作为命令行参数传递给C程序。然后,不使用scanf,而是在argv []中输入。
答案 2 :(得分:0)
如果将C程序设计为服务器,则应使用套接字或命名管道。这样,您就可以在不启动的情况下与其进行交互。 如果你想在脚本中多次使用它,你可以使用popen。 如果您只需要使用它一次,您只需将参数作为参数传递。