当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于libcurl的问题
帖子发表于 : 2012-07-31 17:38 

注册: 2009-04-19 21:09
帖子: 86
送出感谢: 0 次
接收感谢: 0 次
因为要POST数据,所以就用libcurl,可每次输完信息会出现什么正在连接,然后就段错误,用gdb显示
引用:
Program received signal SIGSEGV, Segmentation fault.
0xb7fa92ce in Curl_raw_nequal () from /usr/lib/i386-linux-gnu/libcurl-gnutls.so.4

这是部分代码:
代码:
char username[32];
char password[32];
char score[7];
double double_score;
CURL *easy_handle = curl_easy_init();
curl_easy_setopt(easy_handle, CURLOPT_VERBOSE, 1);
curl_easy_setopt(easy_handle, CURLOPT_HEADER, 1);
curl_easy_setopt(easy_handle, CURLOPT_URL, "某个地址");
printf("请输入用户名:");
scanf("%s", username);
fflush(stdin);
printf("请输入密码:");
scanf("%s", password);
fflush(stdin);
for(;;)
{
    printf("请输入一个数:");
    scanf("%lf", &double_score);
    if(double_score<100)
    {
        break;
    }
    else
    {
        printf("太大了!\n");
        continue;
    }
}
gcvt(double_score, 5, score);
struct curl_httppost* post=NULL;
struct curl_httppost* last=NULL;
curl_formadd(&post, &last, CURLFORM_COPYNAME, "a", CURLFORM_COPYCONTENTS, score, CURLFORM_END);
curl_formadd(&post, &last, CURLFORM_COPYNAME, "b", CURLFORM_COPYCONTENTS, password, CURLFORM_END);
curl_formadd(&post, &last, CURLFORM_COPYNAME, "c", CURLFORM_COPYCONTENTS, username, CURLFORM_END);
curl_easy_setopt(easy_handle, CURLOPT_HTTPPOST, post);
curl_easy_perform(easy_handle);
curl_easy_cleanup(easy_handle);
curl_global_cleanup();


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于libcurl的问题
帖子发表于 : 2012-07-31 18:37 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
段错误……单步调试吧,看错误出现在哪一步。 :em20 :em20 :em20


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于libcurl的问题
帖子发表于 : 2012-08-01 15:45 

注册: 2009-04-19 21:09
帖子: 86
送出感谢: 0 次
接收感谢: 0 次
YeLee 写道:
段错误……单步调试吧,看错误出现在哪一步。 :em20 :em20 :em20

肯定是
代码:
curl_easy_perform(easy_handle);



页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于libcurl的问题
帖子发表于 : 2012-08-01 16:41 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
*easy_handle = curl_easy_init();

说不定init没实际分配内存空间。段错误,通常是地址越界,没实际空间。猜的。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于libcurl的问题
帖子发表于 : 2012-08-01 19:21 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
我想起了curl_global_init而已,调试不仅仅要看运行到哪一步,还得看一些变量的值的嘛。 :em06 :em06 :em06


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于libcurl的问题
帖子发表于 : 2012-08-03 18:29 

注册: 2009-04-19 21:09
帖子: 86
送出感谢: 0 次
接收感谢: 0 次
YeLee 写道:
我想起了curl_global_init而已,调试不仅仅要看运行到哪一步,还得看一些变量的值的嘛。 :em06 :em06 :em06

把断点设在那个curl_easy_perform前,好像username变量和password变量后面有一些乱码


_________________
沉默是金。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译