我正在玩,QSharedMemory
我不确定我是刚刚发现了一个严重的错误还是我做错了什么。情况是,如果不存在具有相同键的内存,则文档说QSharedMemory::create()
应该返回 true,否则应该返回 false,并且QSharedMemory::error()
应该检查发生了什么。
我目前的代码是:
QSharedMemory sm("smtest");
sm.setKey("smtest"); // <--- not needed as I already set the key in the initializator, but I'm leaving it anyways, just for the test
qDebug() << sm.create(1);
qDebug() << sm.create(1); //<--- I expect this to return false, but it returns true.
qDebug() << sm.error(); //<--. I expect this to return QSharedMemory::AlreadyExists, but QSharedMemory::NoError is returned instead.
//wtf?!
我的问题是:我是刚刚在 Qt4 中发现了一个非常大的错误,还是我做错了什么?
PS:此代码在 Windows 7 x64 上运行
编辑:为了清楚起见,如果我运行该代码两次,第二个应用程序应该检测到第一个,但它没有。
编辑 2:我在这里报告了一个错误https://bugreports.qt.io/browse/QTBUG-27744