gpt4 book ai didi

c++ - CreateFile 能否返回 NULL?

转载 作者:可可西里 更新时间:2023-11-01 13:22:09 24 4
gpt4 key购买 nike

我知道 CreateFile 返回的无效值是 INVALID_HANDLE_VALUE。但是因为我也喜欢使用 RAII,所以很想把 HANDLE 放在 shared_ptr 中(像这样: shared_ptr<void> handle (CreateFile(args),&CloseHandle) )以确保 handle 已关闭。对于这种快速简便的 RAII 方法,我唯一关心的是 CreateFile 是否可以返回 NULL 作为 HANDLE 值。

最佳答案

NULL不是有效的句柄值。您可以从某些 Windows API 函数返回 NULL 的事实中看出这一点。来表示失败。由于只有一个函数来处理句柄,CloseHandle ,它遵循 NULL不是有效的 HANDLE值(value)。因此 CreateFile永远无法返回 NULL .

Raymond Chen 写了一篇涉及此主题的博客文章:Why are HANDLE return values so inconsistent? .

现在,我对shared_ptr<>一无所知所以想对你的想法是否合适不做任何评论。我只是回答您提出的直接问题。

关于c++ - CreateFile 能否返回 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com