可以设置两次CURLOPT_WRITEFUNCTION吗?

时间:2017-09-04 21:06:53

标签: curl callback libcurl

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Disable_Verbose);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Save_Page);

这只是我的代码的一小部分,我在这里调用了两次CURLOPT_WRITEFUNCTION,我不知道是否可以这样做。

编辑:感谢Benjamin Lindley,这对我有用:

size_t Write_Callback_Func(void *server_data, size_t size, size_t nmemb, void *user_data)
{
    ((string*)user_data)->append((char*)server_data, size * nmemb);
    return size * nmemb;
}

1 个答案:

答案 0 :(得分:3)

'好'在什么意义上?没关系,它不会导致运行时错误。但是没有任何理由你会这样做(之间没有调用int x; x = 2; // useless x = 3; )。第二个电话取代了第一个电话。它类似于这样做:

curl_easy_perform

如果您希望在拨打printf()时调用两个写函数,则不会。仅调用最近设置的函数。如果这是你想要实现的目的,你需要编写一个单独的写函数来调用它们。