Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » LibCurl man RU

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

HNKTO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Русский перевод части оригинального руководства LibCurl v7.13.0
Сами библиотеки (и английская документация к ним): http://www.curl.haxx.se/
Русский перевод также выложен торрентом на пиратской бухте http://thepiratebay.se/torrent/10392146 в виде HTML файлов с оформлением в стиле оригинала.
 
Переведеные страницы:
curl_easy_cleanup
curl_easy_duphandle
curl_easy_setopt
curl_multi_add_handle
curl_multi_cleanup
curl_multi_fdset
curl_multi_info_read
curl_multi_init
curl_multi_perform
curl_multi_remove_handle
curl_multi_strerror
 
Добавлено:
###curl_easy_cleanup.html###
НАЗНАЧЕНИЕ
 
curl_easy_cleanup - Завершает libcurl easy сессию  
 
ОБЗОР
 
#include <curl/curl.h>  
 
void curl_easy_cleanup(CURL * handle );  
 
ОПИСАНИЕ
 
Эта функция должна быть последний, вызываемой для easy сессии. Она обратна функции {curl_easy_init(3)} и должна быть вызвана с тем же указателем handle в качестве аргумента, какой был получен вызовом {}{curl_easy_init(3)}.
 
Этой функцией можно закрыть все соединения, открытые этим указателем, и возможно оставшимся открытыми до сих пор. Не вызывайте каждый раз эту функцию, если вы собираетесь передавать несколько файлов.
 
Вызов этой функции штатно удаляет все настройки, переданные libcurl для указанного указателя и высвобождает задействованную память. Дальнейшее использование этого указателя недопустимо.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Нет  
 
СМОТРИ ТАКЖЕ
 
{curl_easy_init (3)}    
 
This HTML page was made with {roffit}, Перевод: ru.libcurl.wikia.com, Пакость  
 
Добавлено:
###curl_easy_duphandle.html###
НАЗНАЧЕНИЕ
 
curl_easy_duphandle - Клонирует указатель сессии libcurl  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURL *curl_easy_duphandle(CURL *handle );  
 
ОПИСАНИЕ
 
Эта функция вернёт новый указатель curl, копию заданного в handle, со всеми ранее установленными настройками в handle, заданным в аргументе. Оба указателя в последствии могут использоваться независимо, и оба должны быть отдельно освобождены с помощью {curl_easy_cleanup(3).}{}
 
Все строки, которые были заданы используя char* для оригинального указателя через вызов {curl_easy_setopt(3)}, в новом указателе также будут указывать на тот же адрес в памяти. В связи с этим нельзя освобождать память этих строк пока оба полученных указателя не будут освобождены.  
 
Копии handle не наследуют информацию о состоянии, соединениях, сессиях SSL и cookies.  
 
Заметка: Даже в многопоточных программах, эта функция не должна вызываться для указателя, уже находящегося в использовании. Передаваемый указатель не может использоваться на время клонирования.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Если эта функция возвращает NULL, что-то пошло не так и вернуть корректный указатель невозможно.  
 
СМОТРИ ТАКЖЕ
 
{curl_easy_init (3)} {curl_easy_cleanup (3)} {curl_global_init (3)}  
 
This HTML page was made with {roffit}, Перевод: ru.libcurl.wikia.com, Пакость  
 
Добавлено:
###curl_easy_setopt.html###
НАЗНАЧЕНИЕ
 
curl_easy_setopt - Устанавливает параметры для curl easy указателя
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);  
 
ОПИСАНИЕ
 
curl_easy_setopt() используется для задания соответствующего поведения libcurl путём установки опций вызывами curl_easy_setopt. Все опции определяются парой аргументов option и parameter. В зависимости от задаваемой опции, тип данных для аргумента parameter может быть long, указателем на функцию, указателем на объект или curl_off_t. Внимательно прочитайте данное руководство, так как неправильные входные значения могут привести к некорректной работе libcurl! Вы можете установить только одну опцию за один вызов функции. Обычно в программе используется несколько вызовов curl_easy_setopt() для установки всех необходимых настроек.
 
Установленные вызовом этой функции настройки действительны для всех последующих передач, которые осуществляется с помощью задаваемого в handle указателя. Опции не сбрасываются после выполнения передачи, поэтому если для дальнейших передач вы хотите использовать другую комбинацию опций, вам необходимо их изменить явным образом. Возможен сброс всех опций в значение по умолчанию с помощью вызова {curl_easy_reset(3)}.  
 
ЗАМЕТКА: Строки, которые передаются в libcurl как аргументы с типом char* не копируются библиотекой, поэтому следует обеспечить сохранность их значений до тех пор пока libcurl не перестанет в них нуждаться. Несоблюдение этого правила приведёт к неработоспособности некоторых функций,вплоть до аварийной остановки программы. Переданные строки требуются libcurl до тех пор пока не будет вызвана {curl_easy_cleanup(3)} для связанного с ними указателя или целевая настрока не будет перезаписана с использованием указателя на другую строку.
 
Указатель handle можно получить вызовами {curl_easy_init(3)} или {curl_easy_duphandle(3)}.  
 
НАСТРОЙКИ ПОВЕДЕНИЯ
 
CURLOPT_VERBOSE  
 
Тип аргумента: long
 
Установите в ненулевое значение, чтобы позволить библиотеке подробно отображать информацию о ходе работы. Очень полезно для отдадки и понимания работы libcurl и/или протокола. Подробные сведения будут отправлены на stderr, или в поток установленный параметром {CURLOPT_STDERR}.
 
Хотя этот параметр вряд ли пригодится в окончательной версии вашего продукта, его можно эффективно использовать при отладке или составлении отчета об ошибках. Еще одна полезная опция для отладки - {CURLOPT_DEBUGFUNCTION}.
 
CURLOPT_HEADER  
 
Ненулевое значение parameter сообщает библиотеке включать заголовок вывод блока данных тела. Этот параметр имеет смысл только для протоколов содержащих заголовки (например HTTP).
 
CURLOPT_NOPROGRESS  
 
Ненулевое значение сообщает библиотеке отключить встроенный индикатор прогресса.
 
ЗАМЕТКА: будущие версии libcurl не будут иметь встроенного индикатора прогресса.  
 
CURLOPT_NOSIGNAL  
 
Тип аргумента: long
 
Если не равно нулю libcurl не использует какие либо функции устанавливающие сигнальные указатели или функции побуждающие отправку сигналов процессам. Эта настройка в основном позволяет многопоточным unix приложениям тихо устанавливать/использовать все настройки таймаутов без рисков получать сигналы. (Добавлено начиная с v7.10)
 
В случае сборки libcurl с поддержкой областей для включения асинхронных DNS запросов. Она включает хорошие таймауты для запросов имён без сигналов.  
 
НАСТРОЙКИ ОБРАТНЫХ ВЫЗОВОВ
 
CURLOPT_WRITEFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: size_t function( void* ptr, size_t size, size_t nmemb, void* userdata);.  
 
Эта функция вызывается в Libcurl при приёме блока данных для их сохранения. Размер данных, на которые указывает аргумент ptr является произведением size на nmemb. Получаемый блок данных не завершается нулём. Задаваемая функция должна возвращать количество обработанных байт, если эта величина будет отличаться от size * nmemb, то libcurl прервёт передачу с кодом ошибки CURLE_WRITE_ERROR.
 
Функция может вернуть значение CURL_WRITEFUNC_PAUSE, которое приведет к приостановке записи в этом соединении. См. {curl_easy_pause} для более подробной информации.  
 
Эта функция может быть вызвана с нулевым размером данных, если получаемые данные отсутствуют.  
 
Установите этот параметр в NULL, чтобы определить встроенную функцию по умолчанию. Эта функция будет записывать данные в FILE* заданный в {CURLOPT_WRITEDATA}.
 
Установить значение в userdata можно параметром {CURLOPT_WRITEDATA}.
 
ЗАМЕТКА: В функцию обратного вызова будет передаваться максимально возможное количество данных, но это количество невозможно узнать заранее. Максимальный объем данных, который может быть передан в функцию записи, определен в заголовочном файле curl.h, как CURL_MAX_WRITE_SIZE.
 
CURLOPT_WRITEDATA  
 
Тип аргумента: указатель void*, определяемый разработчиком, по умолчанию FILE*.
 
Если вы используете параметр {CURLOPT_WRITEFUNCTION}, то этот указатель вы получите в качестве аргумента userdata в заданной callback функции. Встроенная функция записи libcurl принимает аргумент FILE*, в который будет записыват данные используя fwrite(), или в stdout, если этот параметр не был установлен.
 
ЗАМЕТКА: Если вы используете Libcurl как Win32 DLL, вы обязательно должны переопределить {CURLOPT_WRITEFUNCTION}, если вы используете этот параметр, иначе Libcurl будет некорректно работать.  
 
Этот параметр также известен под старым названием CURLOPT_FILE, имя {CURLOPT_WRITEDATA} поддерживается начиная с версии 7.9.7.
 
CURLOPT_READFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: size_t function( void* ptr, size_t size, size_t nmemb, void* stream);.
 
Функция вызывается libcurl каждый раз когда необходимо считать данные, передаваемые пиру. Буфер, адрес которого передаётся в ptr должен быть заполнен size * nmemb числом байт. Твоя функция должена возвращать число байт, записанных в этот буфер. Возврат 0 сигнализирует библиотеке о достижении конца файла и необходимости остановить текущую передачу.
 
Если текущая передача была остановлена возвратом нуля "преждевременно" (т. е. до того как сервер ожидал этого, например если ты сообщил что будет передано N байт, но фактически передал менее N байт) имей в виду что сервер "зависнет" в ожидании остатка ещё не переданных данных.
 
В libcurl 7.12.1 и более поздних, обратная функция чтения может возвращать CURL_READFUNC_ABORT для разовой остановки текущей операции, с возвращаемым кодом ошибки передачи CURLE_ABORTED_BY_CALLBACK.
 
CURLOPT_READDATA  
 
Указатель на данные, передаваемые в функцию чтения. Имей ввиду что если ты задал {CURLOPT_READFUNCTION}, ты получишь этот параметр в качестве её входного аргумента. Если ты не задал обратную функцию чтения, должен быть задан действительный указатель типа FILE *.
 
ЗАМЕТКА: Если ты используешь libcurl в варианте win32 DLL, ты должен задать {CURLOPT_READFUNCTION} если ты установил этот параметр.
 
Этот параметр также известен под старым именем CURLOPT_INFILE, назваине {CURLOPT_READDATA} введено начиная с v7.9.7.
 
CURLOPT_IOCTLFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: curlioerr function(CURL *handle, int cmd, void *clientp);
 
Указатель на функцию должен соответствовать прототипу curl_ioctl_callback описаному в <curl/curl.h>. Эта функция вызывается libcurl в случае необходимости выполнения некоторых спецефических операций, связанных с вводом/выводом, которые libcurl не может выполнить самостоятельно. На данный момент единственной операцией требующей такой запрос является перемотка протока чтения данных. Перемотка потока чтения данных может понадобиться в случае выполнения HTTP PUT или POST с методом многоходовой  идентификации. (Опция добавлена в  версии 7.12.3)
 
CURLOPT_IOCTLDATA  
 
Принимает указатель, который не затрагивается libcurl и передаётся в качестве третьего аргумента (clientp) в обратную функцию, установленную вызовом {CURLOPT_IOCTLFUNCTION}. (Опция добавлена начиная с v7.12.3)
 
CURLOPT_PROGRESSFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: int function(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow);
Указатель на функцию должен соответствовать прототипу curl_progress_callback описанному в <curl/curl.h>. Эта функция вызывается libcurl вместо внутреннего эквивалента через короткие интерваны времени в течении процесса передачи. Неизвестные/не используемые аргументы устанавливаются в 0 (например если ты только принимаешь данные, объём отправляемых данных будет установлен в 0). Возвращение ненулевого значения из этой обратной функции заставит libcurl прервать передачу с кодом ошибки CURLE_ABORTED_BY_CALLBACK.
 
Также имей в виду что чтобы эта функция вызывалась {CURLOPT_NOPROGRESS} должен быть установлен в FALSE.
 
CURLOPT_PROGRESSDATA  
 
Принимает указатель, который не затрагивается libcurl и передаётся в качестве первого аргумента (clientp) в обратную функцию прогресса, заданную в  {CURLOPT_PROGRESSFUNCTION}.
 
CURLOPT_HEADERFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: size_t function( void *ptr, size_t size, size_t nmemb, void *stream);.
 
Эта функция вызывается libcurl при приёме данных заголовка целью их записи. Заголовки гарантированно передаются друг за другом построчно. При использовании этого вызова сложностей с обработкой заголовков быть не должно. Размер данных, адресуемых через ptr равен произведению size на nmemb. Указатель stream равен указателю,переданному libcurl настройкой {CURLOPT_WRITEHEADER}. Возвращаемое значение должно быть равно действительному числу записанных данных или -1 в случае ошибки (библиотека при этом прервёт передачу с кодом ошибки CURLE_WRITE_ERROR).
 
CURLOPT_WRITEHEADER  
 
Принимает указатель, используемый как часть функции записи данных заголовка. Если ты не используешь собственную обратную функцию обработки, то указатель должен быть действительным FILE *дескриптором. Смотри также опцию {CURLOPT_HEADERFUNCTION} для описания как установить собственную обратную функцию получения всех заголовков.
 
CURLOPT_DEBUGFUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу: int curl_debug_callback (CURL *, curl_infotype, char *, size_t, void *);
 
{CURLOPT_DEBUGFUNCTION} замещает стандартную функцию когда установлен {CURLOPT_VERBOSE}. Эта обратная функция принимает отладочную информацию в аргумент curl_infotype Эта функция должна возвращать 0. Данные получаемые в char* не являются строкой завершающейся нулём, но их размер указывается в аргументе size_t.
 
Аргумент curl_infotype может принимать следующие значения:  
 
CURLINFO_TEXT  
 
Данные - ниформационный текст.  
 
CURLINFO_HEADER_IN  
 
Данные - заголовок (или похожие на заголовок) данные полученные от пира.  
 
CURLINFO_HEADER_OUT  
 
Данные - заголовок (или похожие на заголовок) данные переданные от пиру.  
 
CURLINFO_DATA_IN  
 
Данные - данные из поля данных пакета принятого от пира (согласно протоколу обмена).  
 
CURLINFO_DATA_OUT  
 
Данные - данные из поля данных пакета переданного пиру (согласно протоколу обмена).  
 
CURLOPT_DEBUGDATA  
 
Принимает указатель, передаваемый в функцию заданную в {CURLOPT_DEBUGFUNCTION} в качестве последнего (void *) аргумента. Этот указатель никак не используется jibcurl, он только передаётся в обратную функцию.
 
CURLOPT_SSL_CTX_FUNCTION  
 
Тип аргумента: Указатель на функцию, которая должна соответствовать следующему прототипу:CURLcode sslctxfun(CURL *curl, void *sslctx, void *parm);
 
Эта функция вызывается libcurl непосребственно перед инициализацией SSL соединения, после получения и обработки всех других настроек SSL, для того чтобы дать приложению последний шанс модифицировать поведение ssl инициализации openssl. Параметр sslctx указывает на openssl SSL_CTX. В случае возврата какой-либо ошибки попытка установить соединение произведена не будет и функция вызова операции исполнения (*perfom()) возвратит код ошибки равный коду ошибки этой обратной функции. Значение аргумента param устанавливается настройкой {CURLOPT_SSL_CTX_DATA}. (Добавлено начиная с v7.11.10).  
 
ЗАМЕТКА: Для правильного использования этого требуются нетривиальные знания библиотек openssl. Использование этой функции позволяет например использовать обратные openssl вызовы для добавления дополнительного ратифицирующего кода для сертификатов, и возможность изменения актуальных запросов URI и HTTPS (пример использования можно найти в lib509 в раздела тестов). Такде смотри раздел примеров для примеров подмены настроек файлов ключа, сертификата и удостоверения.  
 
CURLOPT_SSL_CTX_DATA  
 
Указатель на данные передаваемые в контекст обратной функции ssl, задаваемой настройкой {CURLOPT_SSL_CTX_FUNCTION}, Этот указатель ты получишь как третий параметр (param), иначе он будет равен нулю. (добавлено начиная с v7.11.10)  
 
НАСТРОЙКИ ОШИБОК
 
CURLOPT_ERRORBUFFER  
 
Принимает указатель char* на буфер в который libcurl сохраняет читаемые человеком сообщения об ошибках. Это может быть более полезным нежели возвращаемые коды ошибок библиотеки. Размер буфера должен быть не менее CURL_ERROR_SIZE байт.
 
Используй {CURLOPT_VERBOSE} и {CURLOPT_DEBUGFUNCTION} для более детальной отладки и происка причин возникновения ошибок.
 
ЗАМЕТКА: если библиотека не возвращает ошибок, буфер может оставаться неизменным. Не полагайся на его содержимое в этих случаях.
 
CURLOPT_STDERR  
 
Тип аргумента: FILE * дескриптор  
 
Сообщает libcurl использовать этот поток вместо stderr при показе индикатора прогресса и отображения данных {CURLOPT_VERBOSE}.
 
CURLOPT_FAILONERROR  
 
Ненулевой параметр указывает библиотеке выполнять тихую обработку сбоев в случае получения кодов ошибок HTTP &ge; 300. Действие по умолчанию должно нормально возвращать страницу, игнорируя этот код.  
 
СЕТЕВЫЕ НАСТРОЙКИ
 
CURLOPT_URL
 
Тип аргумента: char* строка завершающаяся нулём.
 
Определяет URL, с которым Libcurl будет устанавливать соединение. Этот параметр обязательно должен быть определен перед вызовом {curl_easy_perform(3)}.
 
Если в этом URL отсутствует описание протокола ("http://", "ftp://" и т.д.), библиотека будет пытаться сама определить, какой протокол нужно использовать, опираясь на имя заданного хоста. Если протокол заданный в URL не поддерживается, то при вызове {curl_easy_perform(3)} или {curl_multi_perform(3)} Libcurl вернет ошибку (CURLE_UNSUPPORTED_PROTOCOL). Используйте  {curl_version_info(3)} для подробной информации о поддерживаемых протоколах.
 
ЗАМЕТКА: {CURLOPT_URL} должен быть обязательно установлен до вызова  {curl_easy_perform(3)}.
CURLOPT_PROXY  
 
Устанавливает HTTP прокси-сервер для использования. Параметр должен быть char* указателем на завершающуюся нулём строку, содержащую имя хоста или разделённый точками IP адрес. Для указания номера порта в строке в конец имени хоста следует добавить :[порт]. Строка адреса прокси-сервера может начинаться с [протокол]:// однако любой такой префикс будет проигнорирован. Номер порта прокси-сервера также опционально может быть задан используя отдельную настройку {CURLOPT_PROXYPORT}.
 
ЗАМЕТКА: когда ты указываешь библиотеке использовать HTTP прокси-сервер, libcurl будет прозрачно конвертировать операции в HTTP в случае если ты укажешь FTP URL и т. д. Это может вызвать проблемы с некоторыми возможностями libcurl, вроде {CURLOPT_QUOTE} и подобными спецификациями FTP, которые не работают при туннелировании через HTTP прокси. Такое туннелирование включается через {CURLOPT_HTTPPROXYTUNNEL}.  
 
ЗАМЕТКА2: libcurl опознаёт переменые окружения http_proxy, ftp_proxy, all_proxy и т. д., в случае если они установлены.  
 
CURLOPT_PROXYPORT  
 
Тип аргумента: long
 
Устанавливает порт для соединения с прокси-сервером, если он не задан в строке адреса через {CURLOPT_PROXY}.
 
CURLOPT_PROXYTYPE  
 
Тип аргумента: long
 
Устанавливает тип прокси-сервера. Доступные значения: CURLPROXY_HTTP и CURLPROXY_SOCKS5, с HTTP по умолчанию. (Добавлено в v7.10)  
 
CURLOPT_HTTPPROXYTUNNEL  
 
Установка параметра в ненулевое значение указывает libcurl туннелировать все операции через указанный HTTP прокси-сервер. Заметь что есть большая разница между использованием прокси-сервера и туннелированием через него. Если ты не знаешь что это значит, тебе скорей всего не нужно использовать эту настройку.  
 
CURLOPT_INTERFACE  
 
Тип аргумента: char*
 
Указывает имя интерфейса для использования в качестве выходного сетевого интерфейса. Имя должно быть именем интерфейса, IP адресом или именем хоста.
 
CURLOPT_DNS_CACHE_TIMEOUT  
 
Тип аргумента: long
 
Устанавливает таймаут кеша имён DNS в секундах. Ответы на запросы имён будут оставаться в памяти на указанное число секунд. Установи в ноль (0) чтобы полностью отключить кеширование, или установи в -1 чтобы записи кэш не очищались никогда. По умолчанию libcurl кеширует эти данные на 60 секунд.
 
CURLOPT_DNS_USE_GLOBAL_CACHE  
 
Тип аргумента: long
 
Установка ненулевого значения заставляет curl использовать глобальный кеш DNS, который будет сохранятся между созданиями и удалениями easy указателей. Это не потоко-безопасно и это использует глобальные переменные.
 
ВНИМАНИЕ! эта настройка устарела. Следует прекратить её использование. Вместо неё следует использовать share интерфейс: {CURLOPT_SHARE} и {curl_share_init(3)}.
 
CURLOPT_BUFFERSIZE
 
Тип аргумента: long
 
Переопределяет размер буфера приёма libcurl. Основная цель использования этой настройки сотоит в том что обратная функция записи принимает много мелких кусков. Это определяется как запрос, не как правило. Никаких гарантий что бы будешь получать куски указанного размера. (Добавлено в v7.10)
 
CURLOPT_PORT  
 
Тип аргумента: long
 
Определяет удалённый порт с которым должно быть установленно соединение. Если не задано: используется порт, указанный в URL или порт по умолчанию для используемого протокола.  
 
CURLOPT_TCP_NODELAY  
 
Тип аргумента: long
 
Указывает состояние настройки TCP_NODELAY (1 = установлена, 0=сброшена). По умолчанию настройка сброшена. Это не даст никакого эффекта если соединение уже установлено.
 
Установка этой настройки отключает алгоритм TCP Nagle. Этого алгоритм предназначен для минимизации числа мелких пакетов передаваемых по сети (где под мелкими пакетами понимаются TCP сегменты меньше Максимального Размера Сегмента (MSS) для сети).
 
Увеличение числа данных пересылаемых в одном сегменте TCP желательно в виду уменьшения накладных расходов на передачу. Однако, в некоторых случаях (наиболее часто telnet или rlogin) мелкие сегменты должны отправлятся без задержек. Эта настройка малоэффективна при передаче больших объёмов данных за раз, и может способствовать перегрузке в сети в случае чрезмерного количества.  
 
НАСТРОЙКИ ИМЁН и ПАРОЛЕЙ (Аутентификация)
 
CURLOPT_NETRC  
 
Тип аргумента: long
 
Этот параметр управляет предпочтениями libcurl между использованием имён пользователей и паролей из файла ~/.netrc, или относящейся к имени пользователя и паролю частью строки URL заданной с помошью {CURLOPT_URL}.
 
ЗАМЕТКА: libcurl предпочтительней любых настроек, контроллируемых этим параметром, использует имя пользователя (и переданный или подсказанный пароль) передаваемые с помощью {CURLOPT_USERPWD}.
 
Может принимать следующие значения:
 
CURL_NETRC_OPTIONAL  
 
Опциональное использование файла ~/.netrc, с использованием данных из URL как более предпочтительных. Файл сканируется на наличие хоста и имени пользователя (для нахождения только пароля) или на наличие хоста, для нахождения первых имени пользователя и пароля после этой machine, если в URL не указанно никакой информации по этому поводу.
 
Неопределённые значения этого параметра дают этот эффект.
 
CURL_NETRC_IGNORED  
 
Библиотека игнорирует файл и использует информацию только из URL.  
 
Это параметр по умолчанию.  
 
CURL_NETRC_REQUIRED  
 
Это значение собщает библиотеке о необходимости обязательного использования данных из файла, игнорировании информации из URL и поиске в файле только по имени хоста.  
 
В аккаунте дозволены только имя машины, имя пользователя и пароль (макросы инициализации и подобные вещи не поддерживаются)..  
 
ЗАМЕТКА: libcurl не верифицирует файл на правильность установок (так-же как стандартный ftp клиент UNIX). Он только должен быть читабельным для пользователя.  
 
CURLOPT_NETRC_FILE  
 
Тип аргумента: char *
 
Принимает завершающуюся нулём строку, содержащую полный путь к файлу, используемому libcurl в качестве .netrc файла. В случае если эта настройка пропущена, но установлена {CURLOPT_NETRC}, libcurl ищет файл .netrc в текущем домашнем каталоге пользователя. (Добавлено в v7.10.9)
 
CURLOPT_USERPWD  
 
Тип аргумента: char *
 
Принимает строку вида [логин]:[пароль] для использования в соединении. Используй {CURLOPT_HTTPAUTH} для выбора метода аутентификации.  
 
При использовании HTTP и {CURLOPT_FOLLOWLOCATION}, libcurl может выполнить несколько запросов на возможно разные хосты. Libcurl посылает эти логин и пароль только хостам использующим изначальное имя хоста (кроме случая установки {CURLOPT_UNRESTRICTED_AUTH}), следовательно если libcurl последовала перенаправлению на другие хосты она не посылает им логин и пароль. Это вынужденная мера для предотвращения случайных утечек информации.
 
CURLOPT_PROXYUSERPWD  
 
Тип аргумента: char *
 
Принимает строку вида [логин]:[пароль] для использования в соединениии с HTTP прокси-сервером. Используй {CURLOPT_PROXYAUTH} для выбора метода аутентификации.
 
CURLOPT_HTTPAUTH  
 
Тип аргумента: long
 
Устанавливает битовую маску, указывающую libcurl метод аутентификации для использования. Ниже перечислены доспустимые состояния бит. Если установлено более одного бита, libcurl сперва запрашивает у сайта список поддерживаемых методов аутентификации и затем использует наилучший из разрешённых к использованию. Заметь что для некоторых методов это включает дополнительный цикл сетевого обмена.  Действительные логин  и пароль устанавливаются с помощью настройки {CURLOPT_USERPWD}. (Добавлена в v7.10.6)
 
CURLAUTH_BASIC  
 
Базовая HTTP аутентификация. Это вариант по умолчанию, и исключительно широко используемый метод и виртуально поддерживаемый везде. В этом случае логи и пароль посылаются по сети в виде простого текста, легко захватываются остальными.
 
CURLAUTH_DIGEST  
 
Аутентификация HTTP Digest. Аутентификация Digest определена в RFC2617 и более безопасна в случае аутентификации через публичные сети в сравлении с устарелым базовым методом.
 
CURLAUTH_GSSNEGOTIATE  
 
Аутентификация HTTP GSS-Negotiate. GSS-Negotiate (также известный как просто "Negotiate") метод разработан Microsoft и используется в их веб-приложениях. Он изначально предназначен в качестве поддержки аутентификации Kerberos5, но также может использоватся с сдругими методами аутентификации. Для более подробной информации обратись к IETF draft draft-brezak-spnego-http-04.txt.
 
ЗАМЕТКА: для работы этого метода требуется сборка libcurl с подходящей библиотекой GSS-API.
 
CURLAUTH_NTLM  
 
Аутентификация HTTP NTLM. Проприетарный протокол разработаный и используемый Microsoft. Он использует концепции оклик-отзыв (challenge-response) и хэша, наподобие Digest, для предотвращения возможности "подслушивания" пароля.
 
ЗАМЕТКА: для работы этого метода требуется сборка libcurl с поддержкой SSL.
 
CURLAUTH_ANY  
 
Это удобный макрос, устанавливающий все биты, что позволяет libcurl использовать любой поддерживаемый метод. Libcurl автоматически найдёт наиболее безопасный метод и выберет его.
 
CURLAUTH_ANYSAFE  
 
Это удобный макрос, устанавливающий все биты, за исключением Базового, что позволяет libcurl использовать любой поддерживаемый метод. Libcurl автоматически найдёт наиболее безопасный метод и выберет его.
 
CURLOPT_PROXYAUTH  
 
Тип аргумента: long
 
Устанавливает битовую маску, указывающую libcurl метод(ы) аутентификации для использования при аутентификации на прокси-сервере. Если установлено более одного бита, libcurl сперва запрашивает у сайта список поддерживаемых методов аутентификации и затем использует наилучший из разрешённых к использованию. Заметь что для некоторых методов это включает дополнительный цикл сетевого обмена. Действительные логин и пароль устанавливаются с помощью настройки {CURLOPT_PROXYUSERPWD}. Битовая маска конструируется путём объединения битов, описаных для настройки {CURLOPT_HTTPAUTH}. На момент написания этого руководства, работали только Базовый и NTLM методы. (Добавлено в v7.10.7)  
 
НАСТРОЙКИ HTTP
 
CURLOPT_AUTOREFERER  
 
Ненулевое значение указывает libcurl автоматически устанавливать Referer: поле в запросах, содержащее URL источника запроса, при перенаправлениии.
 
CURLOPT_ENCODING  
 
Устанавливает содержимре Accept-Encoding(Допустимых Кодировоок): заголовка в HTTP запросе и включающего декодирование ответа если принят заголовок Content-Encoding (Кодировки Материала). Поддреживаются три типа кодировки: identity - без кодировки, deflate - запрашивает сервер сжимать свои ответы используя алгоритм zlib, и gzip - запрашивает gzip алгоритм сжатия. Если установлена пустая строка - заголовок Accept-Encoding содержит все поддерживаемые кодировки для отправки.
 
Этот запрос - не правило. Сервер может делать, а может и не делать этого. Эта нстройка должна быть установлена (в любое ненулевое значение) или иначе будет проигнорирована любая кодировка, добровольно выполненная сервером. За подробностями обратись к специальному файлу lib/README.encoding for details.
 
CURLOPT_FOLLOWLOCATION  
 
Ненулевое значение параметра сообщает библиотеке следовать по любому Location (Расположению): заголовку посылаемому сервером как часть HTTP заголовка.
 
ЗАМЕТКА: это значит что библиотека будет перепосылать этот-же запрос по новом у направлению и следовать новым заголовкам Location до тех пор пока они возвращаются в ответах. Для ограничения числа перенаправлений, по которым libcurl будет следовать, можно использовать {CURLOPT_MAXREDIRS}.
 
CURLOPT_UNRESTRICTED_AUTH  
 
Ненулевое значение указывает библиотеке продолжать посылать аутентификацию (логин+пароль) при следовании перенаправлениям, даже если имя хоста изменилось. Заметь что это имеет смысл только если установлена {CURLOPT_FOLLOWLOCATION}.
 
CURLOPT_MAXREDIRS  
 
Тип аргумента: long
 
Устанавливает максимальное число перенаправлений. Если число перенаправлений превысило установленный лимит, следующее перенаправление отменяется с ошибкой (CURLE_TOO_MANY_REDIRECTS). Эта настройка имеет смысл только если установлена {CURLOPT_FOLLOWLOCATION}.
 
CURLOPT_PUT  
 
Ненулевое значение указывает библиотеке использовать HTTP PUT для передачи данных. Данные должны быть установлены с помощью {CURLOPT_READDATA} и {CURLOPT_INFILESIZE}.
 
Эта настройка устарела и начиная с версии 7.12.1 необходимо вместо неё использовать {CURLOPT_UPLOAD}.
 
CURLOPT_POST  
 
Ненулевое значение указывает библиотеке регулярно делать HTTP post. Это также заставляет библиотеку использовать заголовок "Content-Type: application/x-www-form-urlencoded". (это наиболее распространённо используемый POST метод).
 
Используй настройки {CURLOPT_POSTFIELDS} для указания посылаемых данных и {CURLOPT_POSTFIELDSIZE} для задания их объёма.
 
Опционально, возможно поставлять данные для POST используя настройки {CURLOPT_READFUNCTION} и {CURLOPT_READDATA}, но в таком случае следует убедиться что настройка {CURLOPT_POSTFIELDS} установлена в любое ненулевое значение. При поставке данных через функцию обратного вызова, ты должен передавать их используя chunked transfer-encoding или ты должен указать размер данных настройкой {CURLOPT_POSTFIELDSIZE}.
 
Возможна перезапись стандартного POST заголовка Content-Type своим собственным с помошью настройки {CURLOPT_HTTPHEADER}.
 
Использование POST с HTTP 1.1подразумевает использование заголовка "Expect: 100-continue". Возможно отключить этот заголовок обычно используя {CURLOPT_HTTPHEADER}.
 
Если ты используешь POST для сервера HTTP 1.1,то в случае использования chunked transfer-encoding, ты можешь отправлять данные не зная их размера перед началом POST. Это можно включить добавлением заголовка вида "Transfer-Encoding: chunked" настройкой {CURLOPT_HTTPHEADER}. С HTTP 1.0 или без chunked transfer-encoding, ты должен указать размер данных в запросе.
 
ЗАМЕТКА:  Если у тебя есть исходящий POST запрос и ты хочешь заменить его на HEAD или GET, ты должен явно указать новый тип запроса настройками {CURLOPT_NOBODY} или {CURLOPT_HTTPGET} или подобными.
 
CURLOPT_POSTFIELDS  
 
Тип аргумента: char *
 
Принимает полный набор данных, посылаемых при операции HTTP POST. Ты должен убедиться что формат блока данных будет понятен серверу, принявшему его. Libcurl не конвертирует или кодирует их. Имей в виду что большинство веб-серверов принимают эти данные только в кодированном url-encode виде.
 
Этот POST - обычная разновидность application/x-www-form-urlencoded (и libcurl установит этот Content-Type по умолчанию при использовании этой настройки), которая является наиболее часто используемой формами HTML. Смотри также {CURLOPT_POST}. Использование {CURLOPT_POSTFIELDS} подразумевает {CURLOPT_POST}.
 
Использование POST с HTTP 1.1 подразумевает использование заголовка "Expect: 100-continue". Этот заголовок можно выключить используя {CURLOPT_HTTPHEADER}.
 
ЗАМЕТКА: Для создания multipart/formdata посылок (вроде rfc1867-posts), определи настройку {CURLOPT_HTTPPOST}.
 
CURLOPT_POSTFIELDSIZE  
 
Импользуй эту настройку если ты хочешь отправлять данные серверу, но не хочешь чтобы libcurl использовала strlen() для определения размера блока данных. При использовании этой настройки ты можешь посылать полностью бинарные данные, в ином случае будут возможны сбои. Если размер установлен в -1 то библиотека использует strlen() для определения размера.
 
CURLOPT_POSTFIELDSIZE_LARGE  
 
Тип аргумента: curl_off_t
 
Используется для задания размера данных, определяемых в {CURLOPT_POSTFIELDS}. Если размер данных не задан явно, libcurl использует strlen() для определения размера. Это версия настройки {CURLOPT_POSTFIELDSIZE} для больших файлов. (Добавлено в v7.11.1)
 
CURLOPT_HTTPPOST  
 
Указывает libcurl что ты хочешь сделать multipart/formdata HTTP POST запрос и ты описываешь какие данные данные должны быть пересланы серверу. Принимает указатель на связаный список curl_httppost структур в качестве параметра. Простейший способ создать такой список - использовать {curl_formadd(3)} согласно описанию. Данные в списке должны оставатся неизменными до тех пор пока данный указатель curl не будет освобождён с помошью {curl_easy_cleanup(3)}.
 
Использование POST с HTTP 1.1 подразумевает использование заголовка "Expect: 100-continue". Этот заголовок можно выключить используя {CURLOPT_HTTPHEADER}.
 
CURLOPT_REFERER  
 
В качестве параметра принимает указатель на завершающуюся нулём строку. Используется для установки заголовка Referer: в http запросе посылаемом удалённому серверу. Это можеь быть использовано для одурачивания серверов или скриптов. Ты также можешь установить любой собственный заголовок используя  {CURLOPT_HTTPHEADER}.
 
CURLOPT_USERAGENT  
 
В качестве параметра принимает указатель на завершающуюся нулём строку. Используется для установки заголовка User-Agent: в http запросе посылаемом удалённому серверу. Это можеь быть использовано для одурачивания серверов или скриптов. Ты также можешь установить любой собственный заголовок используя  {CURLOPT_HTTPHEADER}.
 
CURLOPT_HTTPHEADER  
 
Принимает указатель на связанный список HTTP заголовков для передачи на сервер в твоём HTTP запросе. Связанный список должен быть полностью действительным списком правильно заполненных структур struct curl_slist. Используй {curl_slist_append(3)} для создания списка и  {curl_slist_free_all(3)} для очистки содержимого списка. Если ты добавил заголовок, который в ином случае внеутренне генерируется и используется libcurl, твой добавленный вариант будет использоватся предпочтительно. Если ты добавляешь заголовок без данных, например 'Accept:' (нет данных справа от двоеточия), то стандартный заголовок будет отключен. Таким образом используя эту настройку можно добавлять новые заголовки, замещать стандартные заголовки своими и удалять стандартные заголовки. Заголовки включённые в связанный список не должны завершаться байтами CRLF, в виду того что curl добавляет эти байты после каждого заголовка самостоятельно. Нарушение этого правила приведёт к странным багам в виду того что сервер будет скорей всего игнорировать часть заданный тобой заголовков.
 
Первая строка в запросе (обычно содержащая GET или POST) не является заголовком и не может быть замещена использованием этой настройки. Заголовками являются только строки следующие за строкой-запросом.
 
Задание NULL в этой настройке сбросит все заголовки в их стандартные значения.  
 
ЗАМЕТКА: Наиболее часто замещаемыз заголовки имеют "ссылки" в настройках {CURLOPT_COOKIE}, {CURLOPT_USERAGENT} и {CURLOPT_REFERER}.
 
CURLOPT_HTTP200ALIASES  
 
Принимает указатель на связанный список псевдонимов(aliases), воспринимаемые как действительные HTTP 200 отклики. Некоторые сервера отвечают с собственной строкой заголовка, например серверы IceCast отвечают со строкой "ICY 200 OK". При добавлении этой строки в свой список псевдонимов такой ответ будет трактоваться как действительный HTTP заголовок типа "HTTP/1.0 200 OK". (Добавлено в v7.10.3)
 
Связанный список должен быть полностью действительным списком правильно заполненных структур struct curl_slist. Используй {curl_slist_append(3)} для создания списка и  {curl_slist_free_all(3)} для очистки содержимого списка.  
 
ЗАМЕТКА: Сами псевдонимы не обрабатываются для какой-либо версии строк. Следовательно если твой псевдоним "MYHTTP/9.9", Libcurl не будет указывать серверу отвечать используя HTTP версии 9.9. Заместо этого Libcurl будет использовать значение установленное настройкой {CURLOPT_HTTP_VERSION}.
 
CURLOPT_COOKIE  
 
Принимает указатель на завершающуюся нулём строку. Используется для установки cookie в http запросе. Формат строки должен быть: NAME=CONTENTS, где NAME - имя cookie, и CONTENTS - то что cookie должно содержать.  
 
Если тебе требуется установить несколько cookie, тебе необходимо установить их все однократным вызовом настройки. Для этого ты должен склеить их все в одну строку вида: "name1=content1; name2=content2;".
 
Многократное использование этой настройки устанавливает только ту строку, которая быда передана вместе с последним вызовом.
 
CURLOPT_COOKIEFILE  
 
Принимает указатель на завершающуюся нулём строку. Строка должена содержать имя файла с данными cookie для чтения. Данные cookie должны быть в формате данных cookie Netscape / Mozilla или подобны регулярным заголовкам HTTP-стиля, сложенным в файле.
 
Задание этой настройкой пустого или несуществующего файла включит cookie для данного указателя curl, создание их, опознание и обработку принятых cookie, и в последствии использовние подходящих cookie в будущих запросах.
 
CURLOPT_COOKIEJAR  
 
Принимает указатель на завершающуюся нулём строку с именем файла. Это заставит libcurl при вызове {curl_easy_cleanup(3)} записывать все опознанные стандартными средствами cookie в указанный файл{}. Если опознанные cookie отсутствуют - файл не будет создан. При указании "-" вместо имени файла cookie бубут выводится в стандартный выходной поток (stdout). Испрльзование этой настройки также включает использование cookie для этой сессии, следовательно если ты например последуешь перенаправлению библиотека соответственно отправит подходящие cookie.
 
ЗАМЕТКА: Если файл хранения cookie не был создан или записан (при вызове {curl_easy_cleanup(3)}), libcurl не будет и недолжна сообщать о каких-либо ошибках в связи с этим. Возможно получать предеупреждения используя {CURLOPT_VERBOSE} или {CURLOPT_DEBUGFUNCTION}, но это только видимая ответная реакция, которую ты получишь об этой возможно смертельной ситуации.
 
CURLOPT_COOKIESESSION  
 
Тип аргумента: long
 
Установка в ненулевое значение начинает новую "сессию"cookie. Эта настройка заставляет libcurl игнорировать все cookie из предидущей сессии, загруженные как "cookie сессии". По умолчанию libcurl всегда сохраняет и загружает все cookie, не зависимо от того cookie сессий это или нет. Cookie сессий - это cookie без даты окончания срока действия и это подразумевает что они должны оставатся действительны и существовать только для этой "сессии".
 
CURLOPT_HTTPGET  
 
Тип аргумента: long
 
Ненулевое значение заставляет установить тип HTTP запроса назад в GET. Имеет смысл к использованию если перед этим для этого указателя curl были установлены POST, HEAD, PUT или пользовательский тип запроса.
 
CURLOPT_HTTP_VERSION  
 
Тип аргумента: long
 
Заставляет libcurl использовать указанную версию HTTP. Не следует делать это если у тебя нет веских причин.
 
Устанавливается в одно из значений, описаных ниже.
 
CURL_HTTP_VERSION_NONE  
 
Разрешает библиотеке использовать версию на своё усмотрение. Libcurl будет использовать наиболее подходящую версию, по её мнению.  
 
CURL_HTTP_VERSION_1_0  
 
Форсирует запросы версии HTTP 1.0  
 
CURL_HTTP_VERSION_1_1  
 
Форсирует запросы версии HTTP 1.1  
 
НАСТРОЙКИ FTP
 
CURLOPT_FTPPORT  
 
Принимает завершающуюся нулём строку. Используется для задания IP адреса, используемого в инструкции FTP PORT. Инструкция PORT указывает удалённому серверу соединяться с заданным тобой IP адресом, именем хоста, сетевым интерфейсом (для UNIX). Задание символа "-" указывает библиотеке использовать твой системный IP адрес по умолчанию. По умолчанию FTP операции пассивны и не используют PORT.
 
Задание NULL в этой настройке выключит PORT и вернёт к использованию пассивной версии.
 
CURLOPT_QUOTE  
 
Принимает указатель на связанный список FTP команд, передаваемых на сервер перед твоим FTP запросом. Это делается до вызова любых других FTP команд (даже до команды CWD). Связанный список должен быть полностью действительным списком правильно заполненных структур 'struct curl_slist'. Используй {curl_slist_append(3)} для добавления строк (команд) в список и {curl_slist_free_all(3)} для очистки содержимого списка после этого. Задание NULL в этой настройке вновь выключит эту операцию.
 
CURLOPT_POSTQUOTE  
 
Принимает указатель на связанный список FTP команд, передаваемых на сервер после твоего FTP запросоа. Связанный список должен быть полностью действительным списком правильно заполненных, как описано для {CURLOPT_QUOTE}, структур 'struct curl_slist'. Задание NULL в этой настройке вновь выключит эту операцию.
 
CURLOPT_PREQUOTE  
 
Принимает указатель на связанный список FTP команд, передаваемых на сервер после установки типа передачи. Связанный список должен быть полностью действительным списком правильно заполненных, как описано для {CURLOPT_QUOTE}, структур 'struct curl_slist'. Задание NULL в этой настройке вновь выключит эту операцию.
 
CURLOPT_FTPLISTONLY  
 
Ненулевое значение параметра указывает библиотеке просто получить список имён ftp папки, вместо составления полного списка папки, включающего размеры файлов, даты и т. д.
 
Это побуждает отправку команды FTP NLST. Имей в виду что некоторые FTP серверы в своём ответе на NLST составляют список только файлов; они могут не включать субдериктории и символьные ссылки.
 
CURLOPT_FTPAPPEND  
 
Ненулевое значение параметра указывает библиотеке что требуется сделать дополнение удалённого файла вместо его замещения. Это полезно только при загрузке на какой-дибо ftp сайт.
 
CURLOPT_FTP_USE_EPRT  
 
Тип аргумента: long
 
Ненулевое значение указывает curl использовать EPRT (и LPRT) команды во время активной загрузки по FTP (которую можно включить настройкой {CURLOPT_FTPPORT}). Использование EPRT означает что перед использованием PORT сначала будет произведена попытка использовать EPRT и затем LPRT, но если для этой настройки задано FALSE (ноль), то библиотека не будет пытатся использовать EPRT или LPRT, только обычный PORT. (Добавлено в v7.10.5)
 
Если сервер является IPv6хостом, эта пастройка не даёт эффекта исходя из 7.12.3.
 
CURLOPT_FTP_USE_EPSV  
 
Тип аргумента: long
 
Ненулевое значение указывает curl использовать команду EPSV во время пассивной загрузки по FTP (режим загрузки по умолчанию). Использование EPSV означает что перед использованием PASV сначала будет произведена попытка использовать EPSV, но если для этой настройки задано FALSE (ноль), то библиотека не будет пытатся использовать EPSV, только обычный PASV.  
 
Если сервер является IPv6хостом, эта пастройка не даёт эффекта исходя из 7.12.3.
 
CURLOPT_FTP_CREATE_MISSING_DIRS  
 
Тип аргумента: long
 
Ненулевое значение укажет curl пытаться создавать любые удалённые папки, в которые пе получилось перейти командой CWD. CWD - команда для смены рабочей папки. (Добавлено в v7.10.7)
 
CURLOPT_FTP_RESPONSE_TIMEOUT  
 
Тип аргумента: long
 
Побуждает curl установить период таймаута (в секундах) пределяющего промежуток времени отпущеный серверу на генерацию ответного сообщения перед тем как сессия будет считатся зависшей. Имей ввиду что curl на период ожидания ответа замещает значение {CURLOPT_TIMEOUT} этим значением. Рекомендуется при использовании совместно с {CURLOPT_TIMEOUT}, ты можешь затать значение {CURLOPT_FTP_RESPONSE_TIMEOUT} меньше чем {CURLOPT_TIMEOUT}. (Добавлено в v7.10.8)
 
CURLOPT_FTP_SSL  
 
Тип аргумента: long
 
Используй одно из значений, перечисленных ниже, для задания желаемого уровня SSL для ftp соединений. (Добавлено в v7.11.0)
 
CURLFTPSSL_NONE  
 
Не использовать SSL.  
 
CURLFTPSSL_TRY  
 
Пытатся использовать SSL, соединяться без шифрования при неудаче.  
 
CURLFTPSSL_CONTROL  
 
Требовать SSL для управляющих соединений или сбрасывать с ошибкой CURLE_FTP_SSL_FAILED при неудаче.
 
CURLFTPSSL_ALL  
 
Требовать SSL для любых соединений или сбрасывать с ошибкой CURLE_FTP_SSL_FAILED при неудаче.
 
CURLOPT_FTPSSLAUTH  
 
Тип аргумента: long
 
Используй одно из значений, перечисленных ниже, для переназначения способа порождения "AUTH TLS" или "AUTH SSL" при FTP соединении через SSL. (смотри {CURLOPT_FTP_SSL}). (Добавлено в v7.12.2)
 
CURLFTPAUTH_DEFAULT  
 
Выбирается libcurl  
 
CURLFTPAUTH_SSL  
 
Сперва пытатся "AUTH SSL" затем в случае неудачи использовать "AUTH TLS"  
 
CURLFTPAUTH_TLS  
 
Сперва пытатся "AUTH TLS" затем при неудаче использовать "AUTH SSL"  
 
CURLOPT_SOURCE_URL  
 
Если задано - включает стороннюю (third party) передачу, используя указанный URL как источник, причём {CURLOPT_URL} рассматривается как цель.
 
CURLOPT_SOURCE_USERPWD  
 
Устанавливает "логин:пароль" используемые для соединения с источником при выполнении сторонних (third party) FTP передач.
 
CURLOPT_SOURCE_QUOTE  
 
Аналогично {CURLOPT_QUOTE}, но только для хоста-источника.  
 
CURLOPT_SOURCE_PREQUOTE  
 
Аналогично {CURLOPT_PREQUOTE}, но только для хоста-источника.  
 
CURLOPT_SOURCE_POSTQUOTE  
 
Аналогично {CURLOPT_POSTQUOTE}, но только для хоста-источника.  
 
CURLOPT_FTP_ACCOUNT  
 
Принимает указатель на завершающуюся нулём строку (или NULL для выключения). Когда FTP сервер запрашивает "данные аккаунта", после того как имя пользователя и пароль были предоставлены, отправляются эти данные с использованием команды ACCT. (Добавлено в v7.13.0)
 
НАСТРОЙКИ ПРОТОКОЛА
 
CURLOPT_TRANSFERTEXT  
 
Ненулевое значение указывает библиотеке для ftp передач использовать режим ASCII, вместо бинарного режима, используемого по умолчанию. Для LDAP передач она получает данные в виде простого текста вместо HTML и для win32 систем она не устанавливает stdout в бинарный режим. Эта настройка может быть полезна при передаче текстовых данных между системами с разными способами восприятия определённых символов, вроде символов перевода строки и т. п.
 
CURLOPT_CRLF  
 
При передаче конвертирует переводы строк в формате Unix в CRLF переводы строк.  
 
CURLOPT_RANGE  
 
Тип аргумента: char*
 
Параметр должен содержать указание желаемого диапазона. Строка должна быть в формате "X-Y", где X и Y могут быть опущены. Передачи по HTTP также поддерживают некоторые интервалы, разделяемые с помощью команд вида "X-Y,N-M". Использование множественных интервалов этого вида побуждает HTTP сервер отсылать запрошеный документ кусочками (используя стандартные техники MIME разделения). Задание NULL в этой настройке отключит использование интервалов.
 
CURLOPT_RESUME_FROM  
 
Тип аргумента: long
 
Задаёт величину отступа (байт) с которого ты желаешь начать передачу. Установка этой настройки в 0 указывает начинать передачу с начала (эффективно подавляет возобновление передачи).
 
CURLOPT_RESUME_FROM_LARGE  
 
Тип аргумента: curl_off_t
 
Задаёт величину отступа (байт) с которого ты желаешь начать передачу. (Добавлено в v7.11.0)  
 
CURLOPT_CUSTOMREQUEST  
 
В качестве параметра принимает указатель на завершающуюся нулём строку.
 
Это пользовательское замещение GET или HEAD при выполнении HTTP запросов, или замещение LIST или NLST при выполнении ftp просмотра папки. Это полезно при выполнении DELETE или других более или менее неопределённых HTTP запросов. Не делаё этого на обум, сначала убедись что твой сервер поддерживает команду.
 
Установка в NULL восттановит внутренние умолчания.  
 
ЗАМЕТКА: Многие люди ошибочно используют эту настройку для замены содержимого запроса своими данными, включая множественные заголовки и содержимое POST. Притом что во многих случаях это может работать, это может приводить к отправке библиотекой libcurl неправильных запросов и возможно дурно запутать удалённый сервер. Используй {CURLOPT_POST} и {CURLOPT_POSTFIELDS} для установки данных POST. Используй {CURLOPT_HTTPHEADER} для замещения или расширения установок заголовков отправляемых библиотекой libcurl. Используй {CURLOPT_HTTP_VERSION} для смены версии HTTP.
 
CURLOPT_FILETIME  
 
Тип аргумента: long
 
Ненулевое зннчение побуждает libcurl в этой операции пытаться получить дату модификации удалённого документа. Это требует чтобы удалённый сервер отправил время или ответил на команду запроса времени. Получить принятое времени (и др.) возможно вызовом функции {curl_easy_getinfo(3)} с аргументом CURLINFO_FILETIME после завершения передачи.
 
CURLOPT_NOBODY  
 
Ненулевое значение указывает библиотеке не включать часть "тело" в вывод. Это имеет смысл только для протоколов имеющих отдельные части "заголовка" и "тела". На HTTP(S) серверах это заставит libcurl делать HEAD запрос.
 
Для смены назад на GET следует использовать {CURLOPT_HTTPGET}. Для обратной смены на POST следует использовать {CURLOPT_POST}. Установка {CURLOPT_NOBODY} в ноль не даст никакого эффекта.
 
CURLOPT_INFILESIZE  
 
Тип аргумента: long
 
При загрузке файла на удалённый сайт, эта настройка должна использоватся для указания libcurl ожидаемого размера загружаемого файла. Смотри также {CURLOPT_INFILESIZE_LARGE}.
 
CURLOPT_INFILESIZE_LARGE  
 
Тип аргумента: curl_off_t
 
При загрузке файла на удалённый сайт, эта настройка должна использоватся для указания libcurl ожидаемого размера загружаемого файла. (Добавлено в v7.11.0)  
 
CURLOPT_UPLOAD  
 
Ненулевое значение параметра указывает библиотеке подготовить данные для передачи на сервер. Для отправок на сервер также интересны {CURLOPT_READDATA} и CURLOPT_INFILESIZEE или {CURLOPT_INFILESIZE_LARGE}. Если протокол - HTTP, передача подразумевает использование  PUT запроса, если ты не указал libcurl что-либо другое.
 
Bcgjkmpjdfybt PUT с HTTP 1.1 подразумевает использование заголовка "Expect: 100-continue". Ты можешь отключить этот заголовок обычно используя {CURLOPT_HTTPHEADER}.
 
Если ты используешь PUT для HTTP 1.1 сервера, ты можешь загружать данные без указания размера перед началом передачи в случае использования кодировки частями (chunked encoding). Ты можешь включить это добавив заголовок вида "Transfer-Encoding: chunked" с помошью {CURLOPT_HTTPHEADER}. При использовании HTTP 1.0 или без кодировки частями ты должен указать размер.
 
CURLOPT_MAXFILESIZE  
 
Тип аргумента: long
 
Позволяет тебе указать максимально допустимый размер (в байтах) загружаемого файла. Если запрошеный файл больше указанного значения - передача не будет начата и будет возвращена ошибка CURLE_FILESIZE_EXCEEDED.
 
ЗАМЕТКА: Размер файла не всегда известен до начала передачи, и эта настройка не даст эффекта даже если передача файла завершится с размером, превышающим заданый лимит. Это действительно для обеих FTP и HTTP передач.
 
CURLOPT_MAXFILESIZE_LARGE  
 
Тип аргумента: curl_off_t
 
Позволяет тебе указать максимально допустимый размер (в байтах) загружаемого файла. Если запрошеный файл больше указанного значения - передача не будет начата и будет возвращена ошибкаCURLE_FILESIZE_EXCEEDED. (Добавлено в v7.11.0)  
 
ЗАМЕТКА: Размер файла не всегда известен до начала передачи, и эта настройка не даст эффекта даже если передача файла завершится с размером, превышающим заданый лимит. Это действительно дляобеих FTP и HTTP передач.  
 
CURLOPT_TIMECONDITION  
 
Тип аргумента: long
 
Это определяет способ восприятия значения {CURLOPT_TIMEVALUE}. Эту настройку можно установить в CURL_TIMECOND_IFMODSINCE или CURL_TIMECOND_IFUNMODSINCE. Эта настройка действительна для HTTP и FTP.
 
ЗАМЕТКА: Время последней модификации файла не всегда известно и в некоторых случаях эта настройка не будет эффективна, даже если полученое состояние времени не будет встречено.
 
CURLOPT_TIMEVALUE  
 
Тип аргумента: long
 
Принимает время в секундах, отсчитывая от 1 января 1970, и это время будет использовано в состоянии указаном настройкой {CURLOPT_TIMECONDITION}.  
 
НАСТРОЙКИ СОЕДИНЕНИЯ
 
CURLOPT_TIMEOUT  
 
Тип аргумента: long
 
Принимает максимальное время (в секундах), отведённое libcurl на проведение на проведение операции передачи. Обычно поиск имён занимает приличное время и ограничение операций менее чем несколькими минутами даёт риск отмены абсолютно нормальной операции. Эта настройка побуждает libcurl использовать SIGALRM для включения системных вызовов таймаута.
 
ЗАМЕТКА: это не рекомендуется к использованию в многопоточных unix программах, вслучае использования сигналов, за исключением случая установленности {CURLOPT_NOSIGNAL}.
 
CURLOPT_LOW_SPEED_LIMIT  
 
Тип аргумента: long
 
Задаёт скорость передачи в байтах в секунду. Если скорость передачи будет ниже заданной на протяжении {CURLOPT_LOW_SPEED_TIME} числа секунд, libcurl будет считать такую передачу слишком медленной и прервёт её.
 
CURLOPT_LOW_SPEED_TIME  
 
Тип аргумента: long
 
Задаёт время в секундах. Если скорость передачи на протяжении заданного времени будет ниже {CURLOPT_LOW_SPEED_LIMIT},  libcurl будет считать такую передачу слишком медленной и прервёт её.
 
CURLOPT_MAXCONNECTS  
 
Тип аргумента: long
 
Задаёт размер кеша постоянного соединения. Заланная величина является максимальной величиной одновременно открытых соединений, которые libcurl может кешировать. Значение по умолчанию - 5, и не рекомендуется изменять его без уверенного понимания как это работает и изменяет окружение libcurl. Это касается соединений использующих любые протоколы, поддерживающие постоянные соединения.
 
При достижении максимального лимита, curl использует {CURLOPT_CLOSEPOLICY} для решения закрывать ли существующие соединения для предотвращения увеличения числа открытых соединений..
 
ЗАМЕТКА: если ты уже имеешь запущенные передачи с этим указателем curl, установка меньшего MAXCONNECTS, чем ранее, может привести к ненужному закрытию открытых соединений.
 
CURLOPT_CLOSEPOLICY  
 
Тип аргумента: long
 
Устанавливает политику, применяемую libcurl  при переполнении кеша соединений и необходимости закрыть одно из открытых соединений для освобождения пространства для нового соединения. Значение должно быть одним из CURLCLOSEPOLICY_* определений. Использование CURLCLOSEPOLICY_LEAST_RECENTLY_USED укажет libcurl закрыть наименее часто используемое соединение. Такое соединение также наименее вероятно будет использовано повторно. Установка CURLCLOSEPOLICY_OLDEST укажет libcurl закрыть наиболее старое соединение, которое было создано раньше всех в кеше соединений. Длугие политики закрытия на данный момент не поддерживаются.  
 
CURLOPT_FRESH_CONNECT  
 
Тип аргумента: long
 
Установка в ненулевое значение форсирует зоздание нового (чистого) соединения для выполнения следующей передачи. Если кеш соединений заполнен, одно из  существующих соединений будет закрыто согласно установленной или стандартной политике. Эта настройка должна использоватся с осторожностью и только если ты понимаешь что она делает. Установка в 0 указывает libcurl пытатся повторно использовать существующее соединение (режим по умолчанию).
 
CURLOPT_FORBID_REUSE  
 
Тип аргумента: long
 
Установка в ненулевое значение заставит закрыть соединение по окончании следующей передачи. Обычно libcurl оставляет все соежинения открытыми с целью возможного их повторного использования в следующих передачах. Эта настройка должна использоватся с осторожностью и только если ты понимаешь что она делает. Установка в 0 укажет libcurl оставлять соединение открытым для возможного повторного использования позже (режим по умолчанию).
 
CURLOPT_CONNECTTIMEOUT  
 
Тип аргумента: long
 
Должна содержать максимальное время (в секундах), отведённое на установление соединения с сервером. Эта настройка ограничивает только фазу установления соединения, эта настройка болше не используется после того как соединение было установлено. Установка в 0 отключит таймаут на соединение (это значит что будут использованы таймауты, установленные в ОС). Смотри также настройку {CURLOPT_TIMEOUT}.
 
ЗАМЕТКА: эта настройка не рекомендуется к использованию в многопоточных программах, в случае если они используют сигналы, исключая случай установки {CURLOPT_NOSIGNAL} (см. выше).
 
CURLOPT_IPRESOLVE  
 
Позволяет приложению установить какой тип IP адресов должен быть использован при разрешении имён хостов. Это интересно только при использовании имён хостов, разрешающихся в адреса использующие облее одной версии IP протокола. Допустимые значения:
 
CURL_IPRESOLVE_WHATEVER  
 
По умолчанию. Разрешает адреса для всех версий протокола IP, которые поддерживает операционная система.  
 
CURL_IPRESOLVE_V4  
 
Разрешает только ipv4 адреса.  
 
CURL_IPRESOLVE_V6  
 
Разрешает только ipv6 адреса.  
 
НАСТРОЙКИ SSL и БЕЗОПАСНОСТИ
 
CURLOPT_SSLCERT  
 
Принимает указатель на завершающуюся нулём строку. Строка должна быть именем файла твоего сертификата. Формат по умолчанию: "PEM" и может быть изменён настройкой {CURLOPT_SSLCERTTYPE}.
 
CURLOPT_SSLCERTTYPE  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка должна быть форматом твоего сертификата. Поддерживаемые форматы: "PEM" и "DER". (Добавлено в v7.9.3)
 
CURLOPT_SSLCERTPASSWD  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка будет использована в качестве пароля, необходимого для использования {CURLOPT_SSLCERT} сертификата.
 
Эта настройка замещена на {CURLOPT_SSLKEYPASSWD} и должна использоватся только для обратной совместимости. Тебе не требуется передавать фразу для загрузки сертификата, но она тебе нужна для загрузки твоего личного ключа.
 
CURLOPT_SSLKEY  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка должна быть именем файла твоего личного ключа. Формат по умолчанию: "PEM" и может быть изменён настройкой {CURLOPT_SSLKEYTYPE}.
 
CURLOPT_SSLKEYTYPE  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка должна быть форматом твоего сертификата. Поддерживаемые форматы: "PEM", "DER" и "ENG".
 
ЗАМЕТКА: Формат "ENG" подразумевает включение загрузки личного ключа через шифровальный движок. В таком случае {CURLOPT_SSLKEY} используется как идентификатор, передаваемый в движок. Ты можешь установить шифровальный движок настройкой {CURLOPT_SSLENGINE}. Ключи в "DER" формате на данный момент не работают по причине бага в OpenSSL.
 
CURLOPT_SSLKEYPASSWD  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка будет использована в качестве пароля, необходимого для использования {CURLOPT_SSLKEY} личного ключа.  
 
CURLOPT_SSLENGINE  
 
Принимает указатель на завершающуюся нулём строку в качестве параметра. Строка используется в качестве идентификатора шифровального движка, который ты хочешь использовать для своего персонального ключа.
 
ЗАМЕТКА: Если шифровальное устройство не удалось загрузить, будет возвращена ошибка CURLE_SSL_ENGINE_NOTFOUND.
 
CURLOPT_SSLENGINE_DEFAULT  
 
Устанавливает актуальный шифровальный движок как умолчание для (асимметричных) ифровальных операций.
 
ЗАМЕТКА: Если шифровальное устройство не удалось установить, будет возвращена ошибка CURLE_SSL_ENGINE_SETFAILED.
 
CURLOPT_SSLVERSION  
 
Тип аргумента: long
 
Устанавливает версию SSL для попыток использования, 2 или 3. По умолчанию библиотека SSL пытается выбрать версию самостоятельно, однако некоторые серверы затрудняют это, в связи с чем тебе иногда прийдётся использовать эту настройку.
 
CURLOPT_SSL_VERIFYPEER  
 
Тип аргумента: long
 
Установка в ноль указывает curl не производить верификацию сертификата пира. (начиная с v7.10 эта настройка по умолчанию имеет ненулевое значение). Альтернативные сертификаты для ферификации вместо оригинальных могут быть заданы настройкой {CURLOPT_CAINFO} или папка с сертификатами может быть указана настройкой {CURLOPT_CAPATH}. Исходя из 7.10, curl устанавливает стандартный пакет. В случае если {CURLOPT_SSL_VERIFYPEER} выключена, также может понадобится установить в 1 или 0 настройку {CURLOPT_SSL_VERIFYHOST} (по умолчанию =2).
 
CURLOPT_CAINFO  
 
Тип аргумента: char *
 
Принимает завершающийся нулём путь к файлу, содержащему один или более сертификатов для верификации пира совместно с ними. Это имеет смысл только при использовании совместно с настройкой {CURLOPT_SSL_VERIFYPEER}.
 
CURLOPT_CAPATH  
 
Тип аргумента: char *
 
Принимает завершающийся нулём путь к папке, сожержащей несколько CA сертификатов для верификации пира совместно с ними. Папка с сертификатами должна быть подготовлена используя openssl утилиту c_rehash. Это имеет смысл только при использовании совместно с настройкой {CURLOPT_SSL_VERIFYPEER}. Настройка {CURLOPT_CAPATH} очевидно не будет работать в Windows в виду некоторых ограничений openssl. (Добавлено в v 7.9.8)
 
CURLOPT_RANDOM_FILE  
 
Тип аргумента: char *
 
Принимает завершающийся нулём путь к файлу. Файл используется для чтения из него данных в сид движка генератора случайных величин для SSL. Указание файла заполненного более случайными величинами делает SSL соединение более безопасным.
 
CURLOPT_EGDSOCKET  
 
Тип аргумента: char *
 
Принимает завершающуюся нулём путь к сокету Entropy Gathering Daemon. Это используется для сидирования движка генератора случайных величин для SSL.
 
CURLOPT_SSL_VERIFYHOST  
 
Тип аргумента: long
 
Установите если вы хотите верифицировать Common name из сертификата пира при SSL синхронизации, установите 1 для проверки действительности, 2 для проверки на соответствие переданому имени хоста. По умолчанию установлено в 2. (Умолчания изменены в v7.10)
 
CURLOPT_SSL_CIPHER_LIST  
 
Тип аргумента: char *
 
Принимает завершающуюся нулём строку, указывающую на список шифров для использования в SSL соединении. Список должен быть синтаксически корректен, он содержит одну иди более строк шифров, разделённых двоеточиями. Запятые и пробелы также поддерживаются как разделители, но обычно используются двоеточия, !, - и + могут быть использованы как операторы.Действительные примеры списков шифров должны содержать 'RC4-SHA', ґSHA1+DESґ, 'TLSv1' и 'DEFAULT'. Список по умолчанию обычно устанавливается при компиляции OpenSSL.
 
<jktt детальную информацию о списках шифров ты можешь найти по этому адресу: {http://www.openssl.org/docs/apps/ciphers.html}  
 
CURLOPT_KRB4LEVEL  
 
Тип аргумента: char *
 
Устанавливает уровень krb4 безопасности, это также включает krb4 awareness. Допустимые строки значения: 'clear', 'safe', 'confidential' или 'private'. Если установленая строка не соответствует ни одному из перечисленных значений, то используется 'private'. Установка строки в NULL отключит kerberos4. Кerberos поддерживается только при работе по FTP.  
 
ДРУГИЕ НАСТРОЙКИ
 
CURLOPT_PRIVATE  
 
Тип аргумента: char *
 
Указывает на данные, которые должны быть ассоциированы с указателем curl. В последствии указатель может быть получен вызовом {curl_easy_getinfo(3)} с параметром CURLINFO_PRIVATE. Libcurl ничего не делает с этими данными сам по себе. (Добавлено в v7.10.3)
 
CURLOPT_SHARE  
 
Принимает share указатель в качестве параметра. Share указатель должен быть создан предварительным вызовом {curl_share_init(3)}. Задание этой настройки заставляет curl указатель использовать данные из общего указателя заместо хранения данных внутри себя. Это позволяет нескольким curl указателям иметь общий блок данных. Если такие curl указатели используются одновременно, ты ДОЛЖЕН использовать методы блокировки в share указателе. Детали смотри в {curl_share_setopt(3)}.  
 
НАСТРОЙКИ TELNET
 
CURLOPT_TELNETOPTIONS  
 
Принимает указатель на curl_slist с переменными для передачи в telnet переговоры. Переменные должны быть в формате <option=value>. libcurl поддерживает установки 'TTYPE', 'XDISPLOC' и 'NEW_ENV'. Смотри описание стандарта TELNET для получения деталей.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
CURLE_OK (ноль) означает, что настройка была установлена корректно, не ноль означает ошибку, код которой определен в <curl/curl.h>. См. полный список с описаниями в libcurl-errors(3).
 
Если вы попытались установить параметр, о котором Libcurl не знает, то возможно, версия вашей библиотеки слишком старая, или параметр был удален в последней версии. Функция в этом случае будет возвращать CURLE_FAILED_INIT.  
 
СМОТРИ ТАКЖЕ
 
{curl_easy_init (3)} {curl_easy_cleanup (3)} {curl_easy_reset (3)}    
 
This HTML page was made with {roffit}, Перевод: ru.libcurl.wikia.com, Пакость  
 
Добавлено:
###curl_multi_add_handle.html###
НАЗНАЧЕНИЕ
 
curl_multi_add_handle - добавляет easy указатель в мультисессию  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle);  
 
ОПИСАНИЕ
 
Добавляет стандартный easy указатель в стек мультисессии. Вызов этой функции установит управление multi_handle над указанным easy_handle.
 
После добавления easy указателя в стек мультисессии использование {curl_easy_perform(3)} для этого указателя невозможно и запрещено!
 
Добавленный ранее easy указатель можно снова удалить вызовом {curl_multi_remove_handle(3)}. Перед уничтожением easy указателя необходимо сперва удалить его из стека мультисессии, multi указатель можно уничтожать только после удаления из него всех easy указателей:
 
1 - {curl_multi_remove_handle(3)}  
 
2 - {curl_easy_cleanup(3)}  
 
3 - {curl_multi_cleanup(3)}  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Код ошибки типа CURLMcode, обобщённые для всех libcurl multi интерфейсов коды ошибок.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_multi_init (3)}  
 
This HTML page was made with {roffit}, перевод: Пакость  
 
Добавлено:
###curl_multi_cleanup.html###
НАЗНАЧЕНИЕ
 
curl_multi_cleanup - уничтожает мультисессию  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLMcode curl_multi_cleanup( CURLM *multi_handle );  
 
ОПИСАНИЕ
 
Очищает и уничтожает всё содержимое стека мультисесии. Это не освобождает или затрагивает конкретные easy указатели где либо - они должны закрыватся индивидуально, обычно используя {curl_easy_cleanup(3)}. Порядок очистки должен быть:
 
1 - {curl_multi_remove_handle(3)} перед уничтожением целевого easy указателя  
 
2 - {curl_easy_cleanup(3)} теперь для него можем независимо вызвать т. к. указатель больше не присоединён к multi указателю мультисессии  
 
3 - {curl_multi_cleanup(3)} допустимо вызывать после отсоединения от целевого multi указателя всех присоединённых easy указателей  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Код ошибки типа CURLMcode, обобщённые для всех libcurl multi интерфейсов коды ошибок.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_init (3)} {curl_easy_cleanup (3)} {curl_easy_init (3)}  
 
This HTML page was made with {roffit}, перевод: Пакость  
 
Добавлено:
###curl_multi_fdset.html###
НАЗНАЧЕНИЕ
 
curl_multi_fdset - Извлекает данные о дескрипторе файла (file descriptor) из multi указателя  
 
ОБЗОР
 
#include <curl/curl.h>
 
 
CURLMcode curl_multi_fdset(CURLM *multi_handle,
                            fd_set *read_fd_set,
                            fd_set *write_fd_set,
                            fd_set *exc_fd_set,
                            int *max_fd);
 
 
ОПИСАНИЕ
 
Эта функция извлекает информацию о дескрипторе файла из заданного multi_handle. libcurl возвращает свои наборы fd_set. Приложение может использовать их в вызове select(). Функция {curl_multi_perform(3)} должна вызыватся так часто как один из них готов для приёма или посылки данных.
 
Также имей ввиду что при вызове select() необходимо использовать весьма маленький (единицы секунд) таймаут и регулярно вызывать curl_multi_perform, даже в случае отсутствия активности в fd_sets - в ином случае внутренние интервалы повторов и таймаутов libcurl могут работать не так как ты думаешь.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Код ошибки типа CURLMcode, обобщённые для всех libcurl multi интерфейсов коды ошибок. Смотри libcurl-errors(3)  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_multi_init (3)}  
 
This HTML page was made with {roffit}, перевод: Пакость  
 
###curl_multi_info_read.html###
НАЗНАЧЕНИЕ
 
curl_multi_info_read - считывает информационные сообщения стека мультисессии  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLMsg *curl_multi_info_read( CURLM *multi_handle,   int *msgs_in_queue);  
 
ОПИСАНИЕ
 
Запрашивает multi указатель на наличие каких либо сообщений от индивидуальных потоков передачи. Сообщения могут содержать коды ошибок из потока или просто факт того что передача завершена. Более детально содержимое сообщений описано ниже.
 
Повторные вызовы этой функции будут возвращать новую структуру до тех пор пока не будет возвращён "0", что сигнализирует об отсутствии неполученных сообщений в данный момент. Переменная, адрес которой задаётся в msgs_in_queue содержит число ещё не полученных сообщений после вызова функции.
 
Данные, на которые указывают возвращаемые указатели, при вызове {curl_multi_cleanup(3)} или {curl_multi_remove_handle(3)} не сохраняются.
Структура  'CURLMsg' очень проста и содержит только базовую информацию. Для получения более подробной информации можно вызвать {curl_easy_getinfo(3)}, или подобную, для easy указателя, указанного в этой структуре:
 
 struct CURLMsg {
    CURLMSG msg;       /* что означает это сообщение */
    CURL *easy_handle; /* easy указатель - отправитель сообщения */
    union {
      void *whatever;    /* данные специфичные для конкретного сообщения */
      CURLcode result;   /* код ошибки для передачи */
    } data;
  };
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Указатель на заполненную структуру, или "0" при сбое или отсутствии сообщений. Также msgs_in_queue заполняется числом сообщений находящихся в очереди после этого вызова.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_multi_init (3)} {curl_multi_perform (3)}  
 
This HTML page was made with {roffit}, перевод: Пакость  
 
Добавлено:
###curl_multi_init.html###
НАЗНАЧЕНИЕ
 
curl_multi_init - создаёт multi-указатель  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLM *curl_multi_init( );  
 
ОПИСАНИЕ
 
Эта функция возвращает CURLM указатель, используемый во всех multi-функциях. Каждый инициализирующий вызов должен иметь соответствующий ему вызов {curl_multi_cleanup(3)} после завершения взаимодействия.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Если эта функция вернула NULL, значит что-то пошло не так и вы не можете использовать другие функции curl.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_global_init (3)} {curl_easy_init (3)}  
 
This HTML page was made with {roffit}, перевод: ru.libcurl.wikia.com & Пакость  
 
###curl_multi_perform.html###
НАЗНАЧЕНИЕ
 
curl_multi_perform - Считывает/записывает доступные данные для каждого easy указателя  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);  
 
ОПИСАНИЕ
 
Когда приложение считает что доступны данные для мультисессии, оно может вызвать эту функцию  для призведения предачи/приёма всего что можно на данный момент считать или записать. Возврат из curl_multi_perform() произойдёт тогда когда записи/чтения будут выполнены. Для вызова этой функции не является обязательным наличие данных, которые можно принять/передать, она может быть вызвана когда угодно. В running_handles записывается число указателей, производивших передачу данных.
 
В случае если после вызова curl_multi_perform() значение running_handles изменилось относительно предидущего вызова (или стало меньше числа easy указателей, добавленных в мультисессию), это значит что одна или более передач утратили статус "running" (выполняется). Ты можешь вызвать {curl_multi_info_read(3)} для получения информации о каждой завершённой передаче, включая CURLcode и более.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
CURLMcode - общий код ошибки интерфейса libcurl.  
 
Если возвращается код CURLM_CALL_MULTI_PERFORM, это в основном означает что тербуется повторный вызов  curl_multi_perform(), перед вызовом select() в случае других действий. Не обязательно это делать немедленно, но это значит что libcurl ещё имеет доступные данные для приёма или передачи перед переходом в состояние "satisfied" (выполнено).
 
ЗАМЕТКА функция возвращает ошибки  касающиеся всего стека мультисессии. Могут возникать проблемы с конкретными потоками передачи, но в таком случае эта функция будет возвращать OK.  
 
ТИПОВОЕ ИСПОЛЬЗОВАНИЕ
 
Большинство программ используют {curl_multi_fdset(3)} для получения дескрипторов файла из multi указателя, после чего ожидают событий на них исползуя select(), и при переходе одного или более из них в состояние готовности вызывается {curl_multi_perform(3)}.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_multi_init (3)}   {curl_multi_fdset (3)} {curl_multi_info_read (3)}  
 
This HTML page was made with {roffit}, перевод Пакость  
 
###curl_multi_remove_handle.html###
НАЗНАЧЕНИЕ
 
curl_multi_remove_handle - Удаляет указанный easy указатель из мультисессии  
 
ОБЗОР
 
#include <curl/curl.h>  
 
CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle);  
 
ОПИСАНИЕ
 
Удаляет указанный easy_handle из заданного multi_handle. Вызов удаляет указанный easy указатель из заданной мультисессии.
 
После удаления easy  указателя из стека мультисессии его вновь можно использовать как аргумент для вызова функции curl_easy_perform().
 
Удаление в данный момент использующегося указателя  прерывает все незавершённые передачи.  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Код ошибки типа CURLMcode, обобщённые для всех libcurl multi интерфейсов коды ошибок.  
 
СМОТРИ ТАКЖЕ
 
{curl_multi_cleanup (3)} {curl_multi_init (3)}  
 
This HTML page was made with {roffit}, перевод Пакость  
 
###curl_multi_strerror.html###
НАЗНАЧЕНИЕ
 
curl_multi_strerror - Возвращает строку с описанием кода ошибки  
 
ОБЗОР
 
#include <curl/curl.h>  
const char *curl_multi_strerror(CURLMcode  errornum );  
ОПИСАНИЕ
 
Функция curl_multi_strerror() возвращает строку с описанием CURLMcode кода ошибки переданного как аргумент errornum.  
 
Эта функция поддерживается начиная с libcurl 7.12.0  
 
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
 
Указатель на завершающуюся нулём строку.  
 
СМОТРИ ТАКЖЕ
 
libcurl-errors (3) {curl_easy_strerror (3)} {curl_share_strerror (3)}  
 
This HTML page was made with {roffit}, перевод: Пакость

Всего записей: 2092 | Зарегистр. 30-01-2010 | Отправлено: 18:29 21-06-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » LibCurl man RU


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru