0

libcurl を使用して Google サーバーをリクエストしています。curl ライブラリは出力を提供しています。curl 変数をグローバルとして使用すると、すべて正常に動作しますが、curl 変数を関数内またはクラスのプライベート メンバー内でローカルとして使用すると、プログラムがクラッシュします。セグメンテーション違反が発生している場所をキャッチできません。

コードは

void func1();
{
    Internet_connection_through_curl    internet_connection;
    internet_connection.simple_program(query_url);
}

Internet_connection_through_curl::simple_program(string url)
{
    CURL *curle;
    CURLcode rese;
    curle = curl_easy_init();

    if(curle)
    {
        curl_easy_setopt(curle, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curle, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curle, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curle, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_easy_setopt(curle, CURLOPT_WRITEDATA , (void *)(&UF));
        curl_easy_setopt(curle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
        curl_easy_setopt(curle, CURLOPT_HEADERFUNCTION, HeaderMemoryCallback);
        rese = curl_easy_perform(curle);
        fprintf(stderr , "Curl easy perform error----> %s\n" , curl_easy_strerror(rese));
        if(rese != CURLE_OK)
               fprintf(stderr, "curl_easy_perform() failed: %s\n",curl_easy_strerror(rese));
        curl_easy_cleanup(curle);
    }
}
4

0 に答える 0