このコードにリンクするすべての人の間で単一の「神」インスタンスを共有し、共有オブジェクトに配置することは可能ですか?
god* _god = NULL;
extern "C"
{
int set_log_level(int level)
{
if(_god == NULL) return -1;
_stb->log_level(level);
return 0;
}
int god_init(){
if(_god == NULL){
_god = new god(); //Magic happens here
}
}
}
すべての関数の開始時にロック同期を実行し、神自身が他のものを新規作成/mallocできることを考えると、それらのものは決して呼び出し元に返されることはありません(神は内部使用のためだけにmallocします)、最も単純なものは何ですかできればその方法。
この共有ライブラリにリンクされた任意の数のプログラムにどのように拡張できますか?