C/C++ CGI [输出cgi环境变量]

要进行CGI编程,需要配置一下Web服务器,这里以Apache2.2为例进行说明,关键有两个地方:
(1)ScriptAlias /cgi-bin/  E:/Apache2.2/cgi-bin/
(2)
<Directory E:/Apache2.2/cgi-bin/>
AddHandler cgi-script .cgi .pl
</Directory>

上面,(1)中指定cgi所在的根目录,(2)指定cgi文件的扩展名。详细的配置可以参考:http://www.phpx.com/man/Apache-2/howto/cgi.html
CGI是一种接口,它与Web服务器之间的通信,可以通过各种语言来实现,比较常见的是perl和shell脚本,不过其它语言的也很多。在这里我选择我比较熟悉的c/c++语言来进行说明。下面对上述配置好的环境做一个简单的测试:

以下代码输入 cgi 环境变量

[javascript]
#include <stdlib.h>
#include <stdio.h>
int main ( int argc, char *argv[] )
{
    char *env_var[ 24 ] = {
		"COMSPEC",
		"DOCUMENT_ROOT",
		"GATEWAY_INTERFACE",
		"HTTP_ACCEPT",
		"HTTP_ACCEPT_ENCODING",
		"HTTP_ACCEPT_LANGUAGE",
		"HTTP_CONNECTION",
		"HTTP_HOST",
		"HTTP_USER_AGENT",
		"PATH",
		"QUERY_STRING",
		"REMOTE_ADDR",
		"REMOTE_PORT",
		"REQUEST_METHOD",
		"REQUEST_URI",
		"SCRIPT_FILENAME",
		"SCRIPT_NAME",
		"SERVER_ADDR",
		"SERVER_ADMIN",
		"SERVER_NAME",
		"SERVER_PORT",
		"SERVER_PROTOCOL",
		"SERVER_SIGNATURE",
		"SERVER_SOFTWARE"
	};

    printf ( "%s\n","Content-Type: text/html\n" );
    printf ( "%s\n","<?xml version = \"1.0\"?>" );
    printf ( "%s\n","<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" " );
    printf ( "%s\n","\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" );
    printf ( "%s\n","<html xmlns = \"http://www.w3.org/1999/xhtml\">" );
    printf ( "%s\n","<head><title>CGI环境变量</title></head><body>" );
    printf ( "%s\n","<table border = \"0\" cellspacing = \"2\">" );

    for ( int i=0;i<24;i++ ) {
        printf ( "%s%s%s\n","<tr><td>",env_var[i],"</td><td>" );
        char *value = getenv( env_var[i]);

        if ( value ) {
            printf ( "%s",value );
        }
        else {
            printf ( "%s","CGI环境变量不存在." );
        }
        printf ( "%s\n","</td></tr>" );
    }

    printf ( "%s\n","</table></body></html>" );
    printf ( "%s\n","C语言编写" );
    return EXIT_SUCCESS;
}
[/javascript] 

转载于:https://www.cnblogs.com/7hihi/archive/2012/06/18/2564258.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值