我正在使用libcurl作为我的软件实现FTP客户端的一部分。在将文件发送到FTP服务器之前我必须做的一件事是通过列出目标目录的内容(以确保我可以连接并且目录存在)来进行连接检查,如{{3}中所建议的那样。 }。问题是我不关心列表操作的输出,所有关心的是连接测试是通过还是失败。如果它通过我得到大量的文本,我想丢弃。我正在使用libcurl 7.33,但是在7.15中CURLOPT_MUTE被删除了,我无法理解如何丢弃列表输出。是否有替代CURLOPT_MUTE或任何其他想法如何丢弃curl_easy_perform
的输出?
curl_easy_setopt(m_curl, CURLOPT_USERNAME, m_ftpUsername);
curl_easy_setopt(m_curl, CURLOPT_PASSWORD, m_ftpPassword);
curl_easy_setopt(m_curl, CURLOPT_URL, m_ftpUrl);
CURLcode res = curl_easy_perform(m_curl);
答案 0 :(得分:1)
提供一个CURLOPT_WRITEFUNCTION回调,它只是忽略数据并返回正确的值!
顺便说一下,MUTE从未努力“放弃列表输出”。答案 1 :(得分:0)
定义回调函数
size_t callbackFunction(char *ptr, size_t size, size_t nmemb, void *userdata)
{
return size * nmemb;
}
然后
curl_easy_setopt(m_curl, CURLOPT_USERNAME, m_ftpUsername);
curl_easy_setopt(m_curl, CURLOPT_PASSWORD, m_ftpPassword);
curl_easy_setopt(m_curl, CURLOPT_URL, m_ftpUrl);
curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, callbackFunction);
CURLcode res = curl_easy_perform(m_curl);
curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, 0); // return using the default callback