在进行CGI编程之前,先了解HTML的一些知识。CGI可以使用多种编程语言来实现,包括C、C++和Perl等,但在嵌入式设备的开发中,一般都不会采用Perl等解释性语言,因为这种语言还需要有解释执行的支撑模块,会占用存储空间和内存。最常用的方法是用C来编写,但C并不是很适合开发像CGI这种需要大量进行字符串操作的程序,编程比较烦琐。因此,对于一个专业的开发人员来说,首先想到的应该是有没有可复用的库来支持快速高效的开发CGI程序。幸运的是,目前就有不少开放源码的支持CGI开发的C库。在此只介绍CGIC,有兴趣的读者可以在Internet上搜索其他的C库。
CGIC是一个支持CGI开发的开放源码的标准C库,可以免费使用,只需要在开发的站点和程序文档中有个公开声明即可,表明程序使用了CGIC库。用户也可以购买商业授权而无需公开声明。CGIC能够提供以下功能:
●分析数据,并自动校正一些有缺陷的浏览器发来的数据。
●透明接收用GET或POST方法发来的From数据。
●能接受上传文件。
●能够设置和接收Cookies。
●用一致的方式处理From元素里的回车。
●提供字符串、整数、浮点数、单选或多选功能来接收数据。
●提供数字字段的边界检查。
●能够将CGI环境变量转化成C中的非空字符串。
●提供CGI程序的调试手段,能够回放CGI程序执行时的CGI状态。(www.xing528.com)
总之,CGIC是一个功能比较强大的支持CGI开发的标准C库,并支持Linux、UNIX和Windows等多操作系统。
CGIC库的具体下载站点是http://www.boutell.com/cgic/cgic205.tar.gz,目前最新版本为cgic205版。
下载后,解压到“/opt/EmbedSky/”目录下,会生成目录cgic205:
配置编译条件,进入cgic205目录,修改Makefile文件。下面是修改后的文件内容:
修改后保存退出,下面编译并优化。
编译,会在目录下生成capture的可执行文件和测试用的cgictest.cgi文件:
优化:
会把capture由原来的100K左右变成现在的29K左右。
在工作站的浏览器地址栏中输入http://192.168.67.16/cgi-bin/cgictest.cgi可以看到页面,表示CGIC库和测试脚本都移植成功。cgictest.cgi比较完整地展现了CGIC库的功能,在开发基于CGIC库的CGI程序前最好先掌握cgictest.cgi程序,这也是用户开发特定应用程序时的参考范例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。