<for linuxer only>本人在做一个在线代码评判的系统,前台是用php写的,关键的一步在于php调用后台用C写的评判程序,php刚入门,所以急切的想知道如何调用外部程序。我在网站目录下写了一个test.c:#include <stdio.h>int main(int argc, char* argv[])
{
int i;
printf("%d\n",argc); for(i=1;i<argc;++i)
printf("Line %d: %s\n", i, argv[i]);
return 1;}然后编译:gcc test.c
生成了: a.out
我在terminal里输入命令:./a.out 1 2 3 4
会输出:
5
Line 1: 1
Line 2: 2
Line 3: 3
Line 4: 4我在网站目录下写了一个test.php:<?php
$lastline = system("./a.out", $returnvalue);
echo "lastline is:$lastline</br>";
echo "returnvalue is:$returnvalue</br>";
?>然后在浏览器里打入: http://localhost/test.php
我预料浏览器应该输出:
lastline is: Line 4 : 4
returnvalue is : 1但是网页输出的却是:lastline is:
returnvalue is:126请问朋友们,到底什么地方不对?时system()函数用的不对,还是其他地方写错了?
期待大牛为小菜解惑。
{
int i;
printf("%d\n",argc); for(i=1;i<argc;++i)
printf("Line %d: %s\n", i, argv[i]);
return 1;}然后编译:gcc test.c
生成了: a.out
我在terminal里输入命令:./a.out 1 2 3 4
会输出:
5
Line 1: 1
Line 2: 2
Line 3: 3
Line 4: 4我在网站目录下写了一个test.php:<?php
$lastline = system("./a.out", $returnvalue);
echo "lastline is:$lastline</br>";
echo "returnvalue is:$returnvalue</br>";
?>然后在浏览器里打入: http://localhost/test.php
我预料浏览器应该输出:
lastline is: Line 4 : 4
returnvalue is : 1但是网页输出的却是:lastline is:
returnvalue is:126请问朋友们,到底什么地方不对?时system()函数用的不对,还是其他地方写错了?
期待大牛为小菜解惑。
解决方案 »
- 关于 php的smarty求解
- 为什么我外面的add_news.php调用不到里fckeditor
- 在线等答案[谢谢!]php中的参数传递问题
- PHP中的&怎么用?
- PHP一个数组问题,看似简单,不是高手不要来啊,嘿嘿!
- 关于列表/菜单的当前页面传值
- 请教如何删除过期的session文件?
- 请问,这样写对不对?谢谢! foreach($arr3 as $key=>($value1=>$value2)) { }
- 如何在xp下,安装imail8.0,一安装就说安装程序必须被关闭,无法继续?怎么办?
- 很多例子都是用gif格式,我用jpg格式,为什么提示“先生,要不要下载呀?”
- php登陆页面问题待解
- ?PHP关于弹出对话框的代码
$lastline = exec("./a.out 1 2 3 4", $returnvalue);
echo "lastline is:$lastline </br>"; print_r($retrunvalue);
//echo "returnvalue is:$returnvalue </br>";
?>
exec都可以调用外部命令
不过前提是你有足够的权限,用phpinfo()下,看看disbale_functions设置有没有吧system exec给禁止了