скройте curl_easy_perform

Как я могу скрыть вывод curl_easy_perform (в оболочке)?
Это в отношении приложения C.

11
задан bernie 11 May 2010 в 22:57
поделиться

2 ответа

Установите параметры CURLOPT_WRITEFUNCTION и / или CURLOPT_WRITEDATA :

FILE *f = fopen("target.txt", "wb");
curl_easy_setopt(handle, CURLOPT_WRITEDATA, f);

По умолчанию libcurl записывает вывод в стандартный вывод . Когда вы переопределяете это (что делает почти любое приложение), оно будет писать в другой файл или передавать фрагменты вывода в обратный вызов. См. Документацию для CURLOPT_WRITEFUNCTION для получения более подробной информации.

12
ответ дан 3 December 2019 в 01:24
поделиться

Как сказал 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 устройство (намного проще).

7
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: