libcurl手册-curl_easy_perform()

curl_easy_perform(3) libcurl Manual

curl_easy_perform(3)

NAME

   curl_easy_perform - perform a blocking file transfer

SYNOPSIS

   #include <curl/curl.h>

   CURLcode curl_easy_perform(CURL *easy_handle);

DESCRIPTION

   Invoke this function after curl_easy_init(3) and all the curl_easy_setopt(3) calls are made, and it performs the transfer as described in the options. It must be called with the
   same easy_handle as input as the curl_easy_init(3) call returned.

   curl_easy_perform(3) performs the entire request in a blocking manner and returns when done, or earlier if it fails. For non-blocking behavior, see curl_multi_perform(3).

   You can do any amount of calls to curl_easy_perform(3) while using the same easy_handle. If you intend to transfer more than one file, you are even encouraged to do so.  libcurl
   will then attempt to re-use the same connection for the following transfers, thus making the operations faster, less CPU intense and using less network resources. Just note that
   you will have to use curl_easy_setopt(3) between the invokes to set options for the following curl_easy_perform.

   You must never call this function simultaneously from two places using the same easy_handle. Let the function return first before invoking it another time. If you want  parallel
   transfers, you must use several curl easy_handles.

   A  network  transfer  moves  data to a peer or from a peer. An application tells libcurl how to receive data by setting the CURLOPT_WRITEFUNCTION(3) and CURLOPT_WRITEDATA(3) op‐
   tions. To tell libcurl what data to send, there are a few more alternatives but two common ones are CURLOPT_READFUNCTION(3) and CURLOPT_POSTFIELDS(3).

   While the easy_handle is added to a multi handle, it cannot be used by curl_easy_perform(3).

注意,不要把同一个CURL* 并行地交给多个curl_easy_perform()执行。

EXAMPLE

   CURL *curl = curl_easy_init();
   if(curl) {
     CURLcode res;
     curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
     res = curl_easy_perform(curl);
     curl_easy_cleanup(curl);
   }

AVAILABILITY

   Always

RETURN VALUE

   CURLE_OK (0) means everything was OK, non-zero means an error occurred as <curl/curl.h> defines - see libcurl-errors(3). If the CURLOPT_ERRORBUFFER(3) was set with curl_easy_se‐
   topt(3) there will be a readable error message in the error buffer when non-zero is returned.

SEE ALSO

   curl_easy_init(3), curl_easy_setopt(3), curl_multi_add_handle(3), curl_multi_perform(3), libcurl-errors(3),

libcurl 7.88.1 January 02, 2023 curl_easy_perform(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

barbyQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值