2017-02-14 14 views
0

libcurlをWebサーバーに2回要求するbashスクリプトを実現する必要があります。複数の実行可能ファイルのlibcurlとcurl_global_init()

スクリプトは、この構造を有する:

プログラムは、次の条件を満たす必要があります。私が読んlibcurl documentationから

#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(); 

} 

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

CALLAとcallBのバイナリコードは、このような構造を持っていますlibcurl機能のいくつかをグローバルに初期化します。つまり、ライブラリを何回使用するかにかかわらず、一度だけ実行する必要があります。あなたのプログラムの生涯にわたって一度。これは、「プログラムの全ライフタイム」とは、例えば、私は2つの別々の実行可能プログラムでのlibcurlを使用する場合、私は一度宣言するとにかくを有していることを意味する場合、それは、私にとっては、明確ではないcurl_global_init()

を使用して行われます別のファイルで初期化子として扱われます。代わりに、私はcallAソースコードとcallBの両方で定義する必要があります。あなたのケースCALLAcallB

答えて

0

は、1つの工程ごとにお互いのため、完全に独立して実行されている2つの明確に独立したプログラムです。

それぞれに1つの「ライフタイム」があるため、両方ともcurl_global_init()を呼び出す必要があります。

関連する問題