libcurl用法 接口函数用法

名字:

curl_easy_init ---- 开始一个libcurl easy session

概要:

#include <curl/curl.h>

CURL *curl_easy_init();

描述:

在使用libcurl时,该函数必须被第一个调用,函数返回CURL类型的句柄该句柄必须作为其他easy-functions函数的输入参数。curl_easy_init 初始化vutl,该函数的对应函数是curl_easy_cleanup。在libcurl执行完后,必须得调用curl_easy_cleanup来释放掉句柄

如果你没有调用过函数curl_global_init(3),函数curl_easy_init会自动替你调用。在multi-threaded的情况下,这么用是致命的,因为curl_global_init(3)不是线程安全的,会导致资源上的问题,因为没有与其对应的清理接口。

我们强烈建议您不要允许这种自动行为的发生,你应该自己正确的调用接口curl_global_init(3)。(此处我有点没太明白,大家可以多看一些例子源码来理解此处的用法)See the description in libcurl(3) of global environment requirements for details of how to use this function.(这句话就不翻译了)

返回值:

如果执行出现错误,函数会返回NULL,此时不可以再使用其他curl函数了

其他:

curl_global_init (3) curl_easy_reset (3)




名字:

curl_easy_cleanup ------ 结束一个libcurl easy session

概要:

#include <curl/curl.h>

void curl_easy_cleanup(CURL * handle );

描述:

该函数必须在easy session的最后一步来调用,它与函数curl_easy_init的作用相反,在调用时所传参数必须是curl_easy_init返回的句柄。

它会强制关掉所有的连接句柄,这些句柄是之前被用过的或者知道现在也一直处于打开状态的。如果你计划传递更多的文件,请不要调用这个函数。

有时你也许需要让libcurl在内部调用你的进度回调或者头回调函数(如果之前在设置句柄属性时使用了curl_easy_setopt(3)),

比如,如果libcurl决定关掉连接,而此时的协议是一种在关闭前需要 请求命令/命令回复 顺序的协议【未完待续】





你可能感兴趣的:(libcurl)