libcurl基础知识
1.global函数
函数原型: CURLcode curl_global_init(long flags);
void curl_global_cleanup(void);
这两个函数是非线程安全的,所以在使用中不要在其他线程中使用,在使用libcurl库所用的函数之前,必须先调用curl_global_init函数,并且只能调用一次,
参数flags:
CURL_GLOBAL_ALL 常用,建议使用
CURL_GLOBAL_WIN32
CURL_GLOBAL_SSL
返回一个枚举类型的数据,返回CURLE_OK代表成功,
2.init和cleanup函数
CURL* curl_easy_init() & void curl_easy_cleanup(CURL* handle)
init函数有一个隐形的功能,在程序调用该函数之前没有显式调用curl_global_init函数,那么他就会自动调用,但是存在一个问题,前边说过curl_global_init
是非县城安全的,所以在多线程中存在致命的问题,在程序执行完后,没有自动调用cleanup函数,造成资源没有释放。
3.setopt
CURLcode curl_easy_setopt(CURL* handle,CURLoption option,parameter)
此函数功能强大,设置一下通信过程中的必要参数和 通信方式,第一个参数………………,第二个参数是操作的类型,地方额参数的类型则要根据第二个参数确定。
libcurl中的option 就像是组成一个状态机,只要你设置一个o