gpt4 book ai didi

c++ - 当我设置 READDATA 和 READFUNCTION 上传文件时,libcurl 在 fwrite() 处崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:18 35 4
gpt4 key购买 nike

我想使用 libcurl 将文件分块上传到远程 Http 服务器。我调用以下函数来设置 READDATA 和 READFUNCTION 以注册回调参数。但是 libcurl 在 curl_easy_perform() 期间仍然崩溃。有人可以帮忙吗?谢谢

我叫什么:

ReadCallbackStatic(void *contents, size_t size, size_t nmemb, void *userp);
curl_easy_setopt(curl_data.m_lib_curl_handle_ptr, CURLOPT_READFUNCTION, ReadCallbackStatic);
curl_easy_setopt(curl_data.m_lib_curl_handle_ptr, CURLOPT_READDATA, userdata);

堆栈跟踪:

(gdb) bt
#0 0x00007ffff604741a in fwrite () from /lib64/libc.so.6
#1 0x00007fffec8713f3 in Curl_client_write () from libcurl.so
#2 0x00007fffec8851b7 in Curl_readwrite () from libcurl.so
#3 0x00007fffec885ea7 in ?? () from libcurl.so
#4 0x00007fffec886a28 in Curl_perform () from libcurl.so
#5 0x00007fffec8873c6 in curl_easy_perform () from libcurl.so

最佳答案

看起来我也必须设置 CURLOPT_WRITEDATA 和 CURLOPT_WRITEFUNCTION。崩溃发生在 fwrite() 处,libcurl 默认使用它来处理 http POST 响应数据。在我设置 CURLOPT_WRITEFUNCTION 后,崩溃消失了。为什么响应数据不是发送到stdout而是发送到fwrite()?

关于c++ - 当我设置 READDATA 和 READFUNCTION 上传文件时,libcurl 在 fwrite() 处崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37914148/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com