设置两次CURLOPT_WRITEFUNCTION可以吗?

设置两次CURLOPT_WRITEFUNCTION可以吗?,curl,callback,libcurl,Curl,Callback,Libcurl,这只是我代码的一小部分,我在这里调用了两次CURLOPT_WRITEFUNCTION,我不知道这样做是否合适 编辑:感谢本杰明·林德利,这对我来说很有用: curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Disable_Verbose); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Save_Page); 什么意义上的“Ok”?这没关系,因为它不会导致运行时错误。但是你没有任何理由这么做(在这两者之间调

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

编辑:感谢本杰明·林德利,这对我来说很有用:

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

什么意义上的“Ok”?这没关系,因为它不会导致运行时错误。但是你没有任何理由这么做(在这两者之间调用
curl\u easy\u perform
)。第二个调用替换第一个调用。这类似于这样做:

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;
}

如果您希望它在调用
curl\u easy\u perform
时同时调用两个写函数,那么它不会这样做。只调用最近设置的函数。如果您想实现这一点,则需要编写一个单独的写函数来调用这两个函数。

什么意义上的“Ok”?这没关系,因为它不会导致运行时错误。但是你没有任何理由这么做(在这两者之间调用
curl\u easy\u perform
)。第二个调用替换第一个调用。这类似于这样做:

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;
}

如果您希望它在调用
curl\u easy\u perform
时同时调用两个写函数,那么它不会这样做。只调用最近设置的函数。如果您想实现这一点,您需要编写一个单独的写函数来同时调用它们。

谢谢,我将这两个函数放在一个函数中,它对我有效,再次感谢您的帮助!谢谢,我把这两个在一个单一的功能,它为我工作,再次感谢的帮助!你没有在那里调用选项,你设置了它。@DanielStenberg是的,你是对的,你没有在那里调用选项,你设置了它。@DanielStenberg是的,你是对的