Фэндом


curl_easy_pause - приостанавливает или возобновляет передачу данных.

Синтаксис Править

CURLcode curl_easy_pause(CURL* handle , int bitmask );

Описание Править

Используя эту функцию, вы можете явно указать запущенному соединению, что необходимо приостановить или снова активировать соединение, которое было ранее приостановлено.

Соединение может быть приостановлено с помощью этой функции или позволить в обратных вызовах, во время чтения или записи, возвращать определенный код возврата (CURL_READFUNC_PAUSE или CURL_WRITEFUNC_PAUSE). Обратный вызов записи может вернуть сигнал паузы в библиотеку, когда он не способен организовать какие-либо данные, но может их предоставить позднее, когда запись будет возобновлена.

ПРИМЕЧАНИЕ: Несмотря на то, что это может показаться удобно, примите к сведению, что эту функцию нельзя вызывать из другого потока.

Когда эта функция вызывается для возобновления чтения, есть высокая вероятность, что будет произведен обратный вызов на запись перед возвращением вызова из этой функции.

Аргумент с handle, определяет handle, который осуществляет подключение, который вы хотите приостановить или снова запустить.

Аргумент с битовой маской - это набор бит, который устанавливает новое состояние соединения. В нем могут быть использованы следующие наборы бит:

CURLPAUSE_RECV Останавливает прием данных. Данные не будут приниматься, пока эта функция не будет снова вызвана без этого набора бит. Таким образом, обратный вызов на запись (CURLOPT_WRITEFUNCTION) не будет вызываться.
CURLPAUSE_SEND Останавливает отправку данных. Данные не будут отправляться, пока эта функция не будет снова вызвана без этого набора бит. Таким образом, обратный вызов на чтение (CURLOPT_READFUNCTION) не будет вызываться.
CURLPAUSE_ALL Останавливает передачу данных в оба направления.
CURLPAUSE_CONT Возобновляет передачу данных в оба направления.

Возвращаемое значение Править

CURLE_OK (ноль) означает, что параметры были установлены правильно, ненулевой код возврата означает что-то произошло неправильно после установки нового множества. См. ошибки Libcurl для полного списка ошибок с пояснениями.

Использование памяти Править

Во время остановки чтения, при возвращении, используя специальный код возврата, из обратного вызова записи, данные для чтения уже находятся во внутренних буферах Libcurl, поэтому они будут оставаться их в выделенном буфере до возобновления чтения, посредством этой функции.

Если загружаемые данные сжаты и есть запрос на автоматическую распаковку при загрузке, Libcurl будет продолжать распаковать весь скачанный кусок, и данные будут кэшироваться уже без сжатия. Это побочный эффект, поэтому если вы скачиваете сильно сжатые данные, приостановка может привести к требованию большого объема памяти, требуемого для хранения данных во время паузы. В этом случае, вам следует рассматривать варианты без использования приостановки чтения, если вы все же хотите использовать автоматическую распаковку данных Libcurl.

См. также Править

curl_easy_cleanup curl_easy_reset

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики