プロセス固有の ID を生成しようとしているとしましょう:
class TestLib
{
public:
static int n;
static int generate_id(){
srand (time(NULL));
if (n == 0)
n = rand() % 10 + 1;
return n;
};
};
そして、TestLib を含むライブラリ A と B があります。
class TEST_A
{
public:
static void print() {
std::cout << "A" << TestLib::generate_id() << std::endl;
};
};
class TEST_B
{
public:
static void print() {
std::cout << "B" << TestLib::generate_id() << std::endl;
};
};
A と B のいずれかを使用する単一のプロセスが同じ ID を持つことが保証されますか?
ライブラリを静的にリンクすると、これは変わりますか?
共有オブジェクトを使用して linux-x86 でこれをテストしましたが、これが原則としてどれほど安全かはわかりません。