【发布时间】:2012-05-11 00:49:20
【问题描述】:
假设我正在尝试生成特定于进程的 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 中使用共享对象对此进行了测试,但我不确定这在原则上有多安全。
【问题讨论】:
标签: c++ static shared-libraries static-libraries