很幸运!用C语言写CGI程序还可以有比较简单的方式,那就是我们可以借助使用第三方库CGIC(CGIC是一个功能比较强大的支持CGI开发的标准C库,并支持Linux, Unix 和Windows等多操作系统)来编写,省去了必须自己去遵循CGI规范来码砖的痛苦,使CGI程序的编写变的简单,下面是我第一次使用CGIC库来写的第一个CGI程序:
第一步:从cgic官网( 此网站好像不稳定,偶尔能开)上下载cgic库文件第二步:在Dev-C++中创建一个console工程,起名为 cgic1把cgic.h、cgic.c 拷贝到工程cgic1源码文件所在的目录下,然后改写main.c如下:获取请求中的参数值,我们在提交一个表单(form)时,怎样把表单内的值提取出来呢?比如下面这个表单:<form action="cgi-bin/cgic1.cgi" method="POST"> <input type="text" name="name" /> <input type="text" name="number" /> <input type="submit" value="Submit" /></form>当out.cgi收到请求时,需要把输入框“name”和输入框“number”内的值提取出来,而且不管form中的action是GET还是POST,都要有效。 下面给出示例代码(文件为cgic1.c):#include <stdio.h>#include "cgic.h"#include <string.h>#include <stdlib.h>int cgiMain() { char name[241]; char number[241]; cgiHeaderContentType("text/html"); fprintf(cgiOut, "<HTML><HEAD>\n"); fprintf(cgiOut, "<TITLE>My CGI</TITLE></HEAD>\n"); fprintf(cgiOut, "<BODY>"); cgiFormString("name", name, 241); cgiFormString("number", number, 241); fprintf(cgiOut, "<H1>%s</H1>",name); fprintf(cgiOut, "<H1>%s</H1>",number); fprintf(cgiOut, "</BODY>\n"); fprintf(cgiOut, "</HTML>\n"); return 0;}上面代码涉及到的cgic函数,可顾名思义,很简单不解释了,比直接用c写简洁很多,更详细的cgic库用法可上其官网查询。结果测试运行正常!注:编译时候,出了个错误,报指向 cgic.c 中引入的某个头文件找不到,还以为windows平台下不能运行cgic或是我下载的版本不对,因为官网打不开,上面的cgic.h、cgic.c是在源码搜索网站 下找到的,下载的cgic库可能被别人改过,后来重新搜索,下载了另一个cgic库,编译通过!参考cgic库的移植和使用