2017-02-14 27 views
0

我必须实现一个bash脚本,它执行2个请求,并将一个循环与libcurl一起发送到一个web服务器。libcurl和curl_global_init()在多个可执行文件上

脚本有这样的结构:

while : 
do 
    ./callA 
    sleep(50) 
    ./callB 
    sleep(10) 
done 

马蹄莲和callB的二进制代码有这样的结构:

#include <curl/curl.h> 

int main(int argc, char *argv[]){ 

    ... 

    curl_global_init(CURL_GLOBAL_DEFAULT); 
    curl = curl_easy_init(); 
    if(curl) { 
     curl_easy_setopt(various settings...); 
     res = curl_easy_perform(curl); 
     if(res != CURLE_OK) { 
      //do something... 
     } 
     else { 
      //handle error... 
     } 
    } 

    curl_easy_cleanup(curl); 
    curl_global_cleanup(); 

} 

libcurl documentation我读:

程序必须初始化全局的一些libcurl功能。这意味着它应该完成一次,无论您打算使用该库多少次。一次为您的程序的整个生命周期。这是使用curl_global_init()

目前尚不清楚,对我来说,如果“计划的整个生命时间”是指,如果我在2个独立的可执行程序我反正用的libcurl申报一次,例如做在一个单独的文件中作为初始值设定项。或者,我必须在callA源代码和callB中定义两者。

回答

0

在你的情况马蹄莲callB在一个进程中运行每两个明显不同的程序,从而完全相互独立的。

他们每个人都有一个“生命时间”,因此都应该致电curl_global_init()