<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()函数用的不对,还是其他地方写错了?
期待大牛为小菜解惑。
解决方案 »
- lamp的论坛程序实现像CSDN论坛分页一样的分页效果该怎么写?
- 数据库表里存了2000字,想每次取出500字,怎么办?
- 请教超级高手,关于PHP以2进制写文件的问题。
- 变量不用了,该怎么释放啊,以保证内存有足够的空间?
- 各位兄弟,有谁知道比较大的新闻系统的演示后台或者下载版也行!
- PHP+MySQL网站项目,可以接包的请入内
- 关于屏蔽代码的问题。
- 有关javascript控制checkbox的问题
- 在PHP3中如何从一时间字符串(如 FEB 1 2000,1 FEB 2000)中取出日期及年份等
- 有没有人使用Dropzone这个插件上传图片被打横了?
- 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给禁止了