(共有)ライブラリを介していくつかの関数を呼び出さなければならないプログラムを作成しようとしています(そのソースは利用可能です)。ライブラリのCコードにはいくつかのグローバル変数があり、多くの関数がこれらのグローバル変数の値を変更します。私がプログラムでしなければならないことは、私が行う各関数呼び出しが新しい変数のセットで機能するようになることを必要とします。
たとえば、この関数をライブラリの一部とします。
int x = 1;
int foo()
{
int a = 0;
//do somethings to 'a'
//...
x++;
return a;
}
これで、プログラムから呼び出すたびにfoo()
、の値がx
1から2、3、4のように更新されます...foo()
呼び出されるたびにx=1と表示されるようにプログラムを作成しようとしています。
申し訳ありませんが、C / linuxがこれらの可変スペースをどのように処理するかについての知識が不十分であるため、この質問はあいまいに思えるかもしれません。上記はほんの一例です。実際には、手動で値をリセットすることは事実上不可能な非常に多くの変数があります。
そのライブラリをコンパイルしたり、プログラムで使用して変数を更新したりするための最良の方法は何でしょうか。
(ちなみに、私もやろうとしているのはfoo()の呼び出しを並列化することですが、共有変数のため、それはできません。)
編集:いくつかのWeb開発プロジェクトで作業しているとき、私はいくつかのコードをWebサービスにカプセル化し、メインプログラムからそれらのサービスを呼び出すために使用しました。同様のフレームワークがC/Linuxに存在しますか?関数がデータを返すことに注意してください。