全部博文(65)
分类: 系统运维
2009-05-06 19:26:01
原文:
然后在goahead/LINUX目录下直接
make
修改一个危险函数,消除警告
此时会出现如下错误
mipsel-linux-gcc -o webs -g -Wall \
-DWEBS -DUEMF -DOS="LINUX" -DLINUX -DUSER_MANAGEMENT_SUPPORT -DDIGEST_ACCESS_SUPPORT -I.. \
main.o libwebs.a
main.o: In function `websGetCgiCommName':
/goahead/LINUX/main.c:325: warning: the use of `tempnam' is dangerous, better use `mkstemp'
解决办法:
找到main.c (goahead/LINUX目录) 文件,在函数websGetCgiCommName(..)函数中
char_t *websGetCgiCommName()
{
char_t *pname1, *pname2;
//pname1 = tempnam(NULL, T("cgi"));
pname1 = (char_t *)mkstemp(T("cgi"));
pname2 = bstrdup(B_L, pname1);
free(pname1);
}
分析:
如果这样修改,CGI程序将无法运行
2、
if (gethostname(host, sizeof(host)) < 0) {
error(E_L, E_LOG, T("Can't get hostname"));
return -1;
}
if ((hp = gethostbyname(host)) == NULL) {
error(E_L, E_LOG, T("Can't get host address"));
return -1;
}
其中,gethostname()函数取不到主机名,使得host为none,因此gethostbyname(host)会出错,所以直接输入host,如下:
if (gethostname(host, sizeof(host)) < 0) {
error(E_L, E_LOG, T("Can't get hostname"));
return -1;
}
sprintf(host,“192.168.0.1”);
if ((hp = gethostbyname(host)) == NULL) {
error(E_L, E_LOG, T("Can't get host address"));
return -1;
}