关于curl_global_init调用的SIGSEV

时间:2017-10-15 16:37:53

标签: c curl libcurl

我尝试使用curl在用c。

编写的守护进程中下载一个feed文件

当我调用curl_global_init(CURL_GLOBAL_ALL)并跟随gdb调用时,我收到以下错误:

Thread 2.1 "showiumize" received signal SIGSEGV, Segmentation fault.
0x00007ffff781e6b2 in tcache_get () from /usr/lib/libc.so.6

关于我做错的任何想法?

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。由于它是一个守护进程,我在执行开始时关闭了stdout和stderr。但是,显然你没有那些就开始卷曲。这是一个最小,完整和可验证的例子:

#include <curl/curl.h>
#include <stdio.h>

int main(void) {
    fclose(1);
    curl_global_init(CURL_GLOBAL_ALL);
    return 0;
}

该示例应该提供一个sigsev。我猜libcurl试图写入stdout。