名称:​​curl_global_init​​

原型


#include <curl/curl.h>
CURLcode curl_global_init(long flags);


描述


这个函数设置libcurl需要的程序运行环境,可以把它看作一个的加载器扩展

在进程环境(所有代码共享内存地址空间的程序)下,libcurl其他所有函数被调用之前这函数至少需要被调用一次。在进程的生命周期内,这个环境设置是没有变化的,所以在同一个程序中,多次调用和只调用一次没有区别。

这个flags选项精确的告诉libcurl那些特性需要被初始化,这些特性可以按位异或,一般情况下都是使用 CURL_GLOBAL_ALL 这个标志。除非你非常了解这个哭的内部原理,否则不建议使用其他参数。

这个函数不是线程安全的。千万不要在进程中的其他线程里面去调用。这并不是说使用libcurl不能使用多线程。curl_global_init()不是线程安全的,主要是因为它调用了其他函数库中的函数,而这些函数可能不是线程安全的,一般情况都是在进程刚开始的时候,没有创建其他线程之前调用curl_global_init()。


FLAGS


CURL_GLOBAL_ALL
CURL_GLOBAL_SSL
CURL_GLOBAL_WIN32
CURL_GLOBAL_NOTHING
CURL_GLOBAL_DEFAULT
CURL_GLOBAL_ACK_EINTR


返回值


当发生错误时会返回非0值,如果返回非0值,代表初始化失败了,不要使libcurl的其他功能



名称: ​​curl_global_cleanup​​

原型


#include <curl/curl.h>
void curl_global_cleanup(void);


描述


这个函数释放 curl_global_init()已经获得的所有资源。同样这个函数也不是线程安全的。


警告


curl_global_cleanup不阻塞的等待任何被libcurl创建的线程终止(例如name resolving线程)。如果一个包含libcurl被动态的卸载,但是libcurl创建的线程仍然运行,这可能引起程序的崩溃。一般在整个程序(进程)结束之前调用这个函数释放资源,就不会有问题。



svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted

svn的错误,找了很久,终于找到一篇良心博文,果断copy下来。特记录。svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。错误如下: 解决方法:清空svn的队列1.下载sqlite3.exe   2.找到你项目的.svn文件,查看是否存在wc.db3.将sqlite3.exe放到.svn的同级目录4.启动cmd执行sqlite3 .svn/w

svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted .

svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。错误如下:解决方法:清空svn的队列1.下载sqlite3.exe 2.找到你项目的.svn文件,查看是否存在wc.db3.将sqlite3.exe放到.svn的同级目录4.启动cmd执行sqlite3 .svn/wc.db "select * from work_queue"5.看到很多记录,下一步执行dele

java中椭圆 html椭圆代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">