Apache中使用C语言写的CGI

本文介绍如何在Windows环境下配置Apache服务器以支持C语言编写的CGI程序,并提供了一个具体的乘法运算CGI示例,包括Apache配置、C程序代码及HTML调用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

今天找了不少资料,终于解决了Windows下Apache调用C语言写的CGI的问题,现整理如下

首先在Apache的配置文件httpd.conf中找到“AddHandler cgi-script .cgi”去掉前面的#号再改为:

“AddHandler cgi-script .cgi .exe”之后重启Apache。

下面给个例子

C程序如下:

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

char *data;

long m,n;

printf("%c%c",13,10);

printf("%s%c%c","<meta Content-Type:text/html;charset=UTF-8 />",13,10);

printf("<TITLE>乘法结果</TITLE> ");

printf("<H3>乘法结果</H3> ");

data = getenv("QUERY_STRING");

if(data == NULL)

printf("<P>错误!数据没有被输入或者数据传输有问题");

else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)

printf("<P>错误!输入数据非法。表单中输入的必须是数字。");

else

printf("<P>%ld和%ld的成绩是:%ld。",m,n,m*n);

fflush(stdout);

return 0;

}

 

关键是在输出的printf("%s%c%c","<meta Content-Type:text/html;charset=UTF-8 />",13,10);前面再给一空行。

否则的话会出现如下提示“The server encountered an internal error or misconfiguration and was unable to complete your request.”

接着将编译过的*.exe文件改名为mult.cgi(其实不改名为*.cgi也可以使用)并放在Apache的cgi-bin目录下。

调用mult.cgi的html源代码如下:

<FORM ACTION="/cgi-bin/mult.cgi">

<P>请在下面填入乘数和被乘数,按下确定后可以看到结果。

<INPUT NAME="m" SIZE="5">

<INPUT NAME="n" SIZE="5"><BR>

<INPUT TYPE="SUBMIT" VALUE="确定">

</FORM>

 

存为cgi.html放在网站根目录下,之后在浏览器中输入localhost/cgi.html即可得到运行结果。

我的话费充值店-各种面额

电信100元仅售98.60 
联通100仅售99.00
移动100仅售99.30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值