正如http://curl.haxx.se/libcurl/c/curl_global_init.html所说,curl_global_init()是必需的,但是这个函数不是线程安全的。代码如下:

// main process
curl_global_init();   // 1 curl_global_init
pid = fork();
if (pid == 0) {
    // Child process
    curl_global_init();  // 2 curl_global_init
    // ... curl functions
} else {
    // parent process
    // ... curl functions
}

子进程是否需要再次调用curl_global_init
我认为子进程从父进程复制内存空间,您不需要再次调用curl_global_init。对吗?

最佳答案

curl_global_init将被调用一次。记住,两个fork在调用时都会创建进程的副本,所以它也会复制curl的状态。因此,如果在fork之前已经完成了初始化,则无需在子进程中再次调用curl_global_init

关于c - 使用curl的多进程,何时必须调用curl_global_init?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9859783/

10-11 17:46