原创 GoAhead下的CGI程序使用说明

2016-5-11 13:28 4524 20 20 分类: MCU/ 嵌入式 文集: SylixOS应用开发

首先读者需要参考博客http://bbs.ednchina.com/BLOG_ARTICLE_3029934.HTM的内容将GoAheadSylixOS下正常执行。

其次编译一个SylixOS App工程做cgi程序,这里使用的工程代码如下:

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    char *data;
    long m,n;
    printf("Content-type: text/html/n/n") ;
    printf("< TITLE >mult result< /TITLE > ");
    printf("< H3 >mult  result< /H3 > ");
    data = getenv("QUERY_STRING");
 
    if(data == NULL) {
        printf("< P >error! data is not input or data error!");
    } else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2) {
        printf("< P >error!data must be a number!");
    } else {
        printf("< P >%ld * %ld = %ld ",m,n,m*n);
    }
    return 0;
}

注:以上代码在执行中还有问题,不过作为验证CGI的流程已经足够,剩下的需要研究html相关内容。

本工程编译成功后,在apps/goahead目录下的web目录中建立cgi-bin目录,将其拷贝过去,如下所示(是否有后缀名称.cgi都无所谓):

[root@sylixos_station:/apps/goahead/web/cgi-bin]# ls
cgi_test        cgi_test.cgi

修改route.txt文件中对cgi的目录设置:

route uri=/cgi-bin dir=/apps/goahead/web  handler=cgi

注:dir:cgi-bin文件夹的绝对路径的上级目录,需要根据自身内容进行更改。

修改index.html文件,修改后内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Home Page</title>
</head>
 
<body>
    <p>Congratulations! The server is up and running.<p/>
</body>
<FORM  ACTION="/cgi-bin/cgi_test">
    <INPUT NAME="m" SIZE="5">
    <INPUT NAME="n" SIZE="5"><BR>
    <INPUT TYPE="submit" VALUE="OK">
</FORM>
</html>

按照开始说明的博客内容,将文件部署到相应位置,既可以实现对cgi的调用。

调试中的问题

goahead: 0: Cannot find CGI program:,修改rout.txt文件的cgi dir为绝对路径/apps/goahead/web

goahead: 0: CGI process file is not executeable: chmod 777 ./cgi_test.cgi,

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
20
关闭 站长推荐上一条 /3 下一条