在Windows中创build一个命名对象时,通过调用GetLastError()
并检查ERROR_ALREADY_EXISTS
,可以发现对象是否已经存在。
有没有办法去问这个双重的问题:我的CloseHandle()
是最后一个closures(句柄)的命名资源吗?
直接,没有。
但是,您可以通过在 CloseHandle
之后调用GetHandleInformation来间接获取它。如果句柄无效,则该函数将失败并将错误编号设置为 ERROR_INVALID_HANDLE
。
不,也不是间接的,再想一想。 这只会告诉你,你的句柄是无效的,自从你关闭它之后你就已经知道了。
不, 内核句柄不是引用计数 。 当你调用CloseHandle
时,关闭句柄。