[英]hide curl_easy_perform
如何隱藏curl_easy_perform輸出(在shell中)?
這與C應用程序有關。
在curl_easy_setopt()中使用CURLOPT_NOBODY。 例:
...
CURL *curl;
CURLcode statusCode;
curl = curl_easy_init();
if(curl){
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/");
//CURLOPT_NOBODY does the trick
curl_easy_setopt(curl, CURLOPT_NOBODY, 1);
curl_easy_perform(curl);
...
鏈接到文檔: http : //curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTNOBODY
設置CURLOPT_WRITEFUNCTION
和/或CURLOPT_WRITEDATA
選項:
FILE *f = fopen("target.txt", "wb");
curl_easy_setopt(handle, CURLOPT_WRITEDATA, f);
默認情況下,libcurl將輸出寫入stdout
。 當你覆蓋它(這幾乎是任何應用程序將要執行的操作)時,它將寫入另一個文件或將輸出塊傳遞給回調。 有關更多詳細信息,請參閱CURLOPT_WRITEFUNCTION
的文檔。
正如Joey所說 , CURLOPT_WRITEFUNCTION
將允許您完全忽略所有輸出。 如果你想讓數據消失,只需設置一個絕對沒有任何內容的回調,而不需要寫入任何文件描述符。
例如,
/* Never writes anything, just returns the size presented */
size_t my_dummy_write(char *ptr, size_t size, size_t nmemb, void *userdata)
{
return size * nmemb;
}
然后在你的選擇中:
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, &my_dummy_write);
或者,將文件句柄指向NULL設備(更容易)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.