goahead如何使用cgi服务_linux+goahead+cgi cgi源代码如何编译?

本文介绍了如何在Linux环境下,使用Goahead web服务器配置CGI服务,并针对提供的cgitest.c示例代码进行编译。在编译过程中,采用的命令包括cc编译器的-g、-Wall选项以及相关库的链接。在运行服务器并尝试访问CGI脚本时遇到了Segmentation fault问题,通过gdb调试发现错误发生在strlen函数调用处。
摘要由CSDN通过智能技术生成

最近在玩goahead,嵌入式开源web server,代码中有一cgitest.c的cgi例子代码,不知道如何编译,仿goahead编译(在标准FC8上)

cc -g -Wall -DWEBS -DUEMF -DOS="LINUX" -DLINUX -DUSER_MANAGEMENT_SUPPORT -DDIGEST_ACCESS_SUPPORT -I../.. -c cgitest.c -o cgitest.o

cc -o cgitest.cgi cgitest.o

编译完成之后,拷贝cgitest.cgi到ws031202/web/cgi-bin,跑起./webs,用IE连接http://192.168.13.198/cgi-bin/cgitest.cgi,服务器端出现Segmentation fault,

gdb调试信息如下:

(gdb) where

#0 0x0059d12b in strlen () from /lib/libc.so.6

#1 0x0804a391 in bstrdup (s=0xffffffff

) at ../balloc.c:461

#2 0x080497af in websGetCgiCommName () at main.c:328

#3 0x0804aa07 in websCgiHandler (wp=0x9798c48, urlPrefix=0x9796bd8 "/cgi-bin", webDir=0x9796bf0 "", arg=0,

url=0x97994d0 "/cgi-bin/test.cgi", path=0x9799510 "/cgi-bin/test.cgi", query=0x9797288 "") at ../cgi.c:185

#4 0x0804e8c8 in websUrlHandlerRequest (wp=0x9798c48) at ../handler.c:279

#5 0x0805778f in websGetInput (wp=0x9798c48, ptext=0xbfb40f40, pnbytes=0xbfb40f38) at ../webs.c:699

#6 0x08057090 in websReadEvent (wp=0x9798c48) at ../webs.c:362

#7 0x08056fed in websSocketEvent (sid=1, mask=2, iwp=158960712) at ../webs.c:319

#8 0x0805157d in socketDoEvent (sp=0x97972a0) at ../sockGen.c:933

#9 0x08051424 in socketProcess (sid=1) at ../sockGen.c:875

#10 0x080492d9 in main (argc=1, argv=0xbfb41074) at main.c:96

好像是strlen的问题。

请教cgi高手代码应该如何编译,谢谢!

如果能够给出Makefile例子,那就更好了。

作者: hgy1234

发布时间: 2009-04-10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值