【发布时间】:2014-08-06 05:41:12
【问题描述】:
是否在任何地方记录/定义了以下情况的行为:
- 进程 A 打开密钥“foo”,进程 B 打开密钥“foo”,然后将其删除。
- 进程 A 打开密钥“foo”,进程 B 打开密钥“foo”,然后将其重命名为“bar”。
我发现在这两种情况下进程 B 的操作都会成功 - 并且关闭 A 中的句柄仍然有效。但这里到底发生了什么?
似乎有很多边缘原因使这难以理解。例如,情况 1 如果在进程 B 删除密钥后,进程 A 尝试重命名已删除的密钥或在其下创建新的子密钥,会发生什么情况?
【问题讨论】:
-
重命名操作未记录在案,因此从所有效果和目的来看,您应该认为它的行为是未定义的。