簡體   English   中英

隱藏curl_easy_perform

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM