2016-09-20 6 views
2

共有ライブラリの複数のコピーを同じアドレス空間にロードしたいと考えています。グローバル変数を共有しないようにしたいので、2つのコピーが他のものが読み込まれていることに気付かないようにします。共有ライブラリの複数のコピーをロードする

ユースケースは、スレッドに安全でないライブラリの並列実行です。

どのように私はLinux上でこの

  • を行うことができますか?
  • OS X?
  • Windowsの場合
  • * BSD?他のUnixライクなシステムで

答えて

2

ユースケースはスレッドセーフでないライブラリの並列実行です。あなたは(難しいです)、「すべてのグローバル変数を共有していない」の目標、それはスレッドセーフでないルーチンを呼び出すことが可能性があるため、ライブラリがはまだは、動作しない場合がありますを達成するために管理している場合でも

ライブラリ。

明白なケースは、ライブラリがstrtokを呼び出すことです。

LinuxおよびSolarisでは、dlmopen(LM_ID_NEWLM, ...)を使用できます。 Man page

関連する問題