当前位置: 技术问答>linux和unix
linux中C程序出现Segmentation fault。。。
来源: 互联网 发布时间:2016-07-18
本文导语: 本帖最后由 lmxmx 于 2009-11-27 17:05:08 编辑 如题:linux中C程序出现Segmentation fault。 使用C写了一个CGI …… 但是在编译的时在 char *DATA = getenv("QUERY_STRING"); 有警告: warning:assignment makes pointer from integer without a ...
使用C写了一个CGI ……
但是在编译的时在 char *DATA = getenv("QUERY_STRING"); 有警告:
warning:assignment makes pointer from integer without a cast
部分源程序:
#include // 只有这一个头文件
char username[20]; // 放用户名
char password[20]; // 放密码
char *DATA = getenv("QUERY_STRING"); // 取得CGI输入,POST方式
if( DATA == NULL ){return 0;} // 看指针是否有效
sscanf(DATA, "username=%s&password=%d",&username,&password); // 取出username和password
再往下是比较字符传
………………
………………
………………
我已经试过 char *DATA =(char*)getenv("QUERY_STRING");
编译时不显示警告了,但是运行时还会 Segmentation fault
也试过 sscanf(getenv("QUERY_STRING"),"username=%s&password=%d",&username,&password);
但是也不行
应该不是类型转换的问题,
大家快来帮我看看啊……
谢谢啦!!!
VPC2007中的RedHat9.0,内核2.4.20-8
|
sscanf(DATA, "username=%s&password=%d",username,password);
|
跟初值没关系吧
你赋值czLEN= getenv("CONTENT_LENGTH")也只是赋了个指针
|
很难控制,
sscanf支持 正则 表达式.
|
#include