什么时候需要curl_global_init()?

发布于 2024-11-09 03:59:35 字数 325 浏览 0 评论 0原文

虽然它的文档说这个功能是必须的,但我看到了两个例子,一个有,另一个没有。

http://curl.haxx.se/libcurl/c/persistant.html

http://curl.haxx.se/libcurl/c/multi-app.html

是这个功能有必要吗?

Though its document says this function is MUST, but I saw two examples, one has it, the other doesn't.

http://curl.haxx.se/libcurl/c/persistant.html

http://curl.haxx.se/libcurl/c/multi-app.html

Is this function necessary at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深者入戏 2024-11-16 03:59:35

如果设计的话,那就是必要的。 文档说:

在程序调用 libcurl 中的任何其他函数之前,该函数必须在程序中至少调用一次(程序是共享内存空间的所有代码)。它设置的环境在程序的生命周期内是恒定的,并且对于每个程序都是相同的,因此多次调用与一次调用具有相同的效果。

但请注意,在 curl_easy_init 的文档中:

如果您尚未调用curl_global_init(3),curl_easy_init(3)会自动执行。这在多线程情况下可能是致命的,因为curl_global_init(3)不是线程安全的,而且可能会因为没有相应的清理而导致资源问题。

If it is designed it will be necessary. The documentation says:

This function must be called at least once within a program (a program is all the code that shares a memory space) before the program calls any other function in libcurl. The environment it sets up is constant for the life of the program and is the same for every program, so multiple calls have the same effect as one call.

But please note that in documentation of curl_easy_init:

If you did not already call curl_global_init(3), curl_easy_init(3) does it automatically. This may be lethal in multi-threaded cases, since curl_global_init(3) is not thread-safe, and it may result in resource problems because there is no corresponding cleanup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文