假设我正在尝试生成特定于进程的 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 中使用共享对象对此进行了测试,但我不确定这在原则上有多安全。