如何将用户输入从HTML表单转换为C程序

时间:2013-07-30 11:54:09

标签: php c exec

我有这个小程序从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 ....但我无法做到。

先谢谢。

3 个答案:

答案 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。 如果您只需要使用它一次,您只需将参数作为参数传递。