Как я могу скрыть вывод curl_easy_perform (в оболочке)?
Это в отношении приложения C.
Установите параметры CURLOPT_WRITEFUNCTION
и / или CURLOPT_WRITEDATA
:
FILE *f = fopen("target.txt", "wb");
curl_easy_setopt(handle, CURLOPT_WRITEDATA, f);
По умолчанию libcurl записывает вывод в стандартный вывод
. Когда вы переопределяете это (что делает почти любое приложение), оно будет писать в другой файл или передавать фрагменты вывода в обратный вызов. См. Документацию для 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 устройство (намного проще).