cgic库的使用

最近公司开发的一个项目要用到CGI,以前一直都是用PHP,没怎么接触过CGI。因为程序要放到嵌入式设备运行,所以要求执行效率要快,经过一番调研之后,决定用C语言来写CGI程序,为了开发方便,我选用了CGIC库。
    首先到官方网站上下载CGIC库的最新版,目前最新版为CGIC205,下载地址: http://www.boutell.com/cgic/
注:我第一次上去找了很久都没找到下载链接,没办法,英文不好。后来慢慢找才找到,原来下载地址在比较靠下面才见到:
  • Obtain cgic: gzipped tar file
  • Obtain cgic: .ZIP file
看到这两个就是啦。

CGIC库的使用相当方便,我下载的是tar.gz那个包,下载完成后运行如下命令:
    # tar zvf cgic205.tar.gz 
    # cd cgic205
    # make
然后就会产生两个文件:capture 和 cgictest.cgi 把这两个文件拷到你的网站目录下面,再用浏览器打开cgictest.cgi。如果你的WEB服务支持CGI,则应该可以正常显示,如果不行则要配置你的WEB服务器支持CGI,配置方法可以参考我的日志中名为“ ubuntu7.04下apache2+mysql5+php5+phpMyAdmin安装与配置 ”的文章。
    如果一切正常后最好看一下cgictest.c源文件,里面的内容很简单,看完之后应该对CGIC库了解得差不多了。
    顺便提一下,CGIC库中只说到接收使用POST方法方法提交的表单,至于使用GET方法的则没有细说,在C语言中可以这样获得使用GET方法传过来的表单:
    url: http://localhost/test.cgi?page=3
则text.cgi中可以这样获得page参数的值
    int main(){
        int page ;   //分页显示
        if( getenv("QUERY_STRING") ){
            char *get_str;
            get_str = getenv( "QUERY_STRING" );
            if(sscanf(get_str,"page=%d",&page)!=1){
                page = 1;
            }
        }
    }

总之使用getenv()可以获得CGI的环境变量,使用sscanf()可以格式化字符串,理解运用这两个函数即可

你可能感兴趣的:(cgic库的使用)