_close文件描述符从_open_osfhandle通过HANDLE

时间:2016-05-04 10:49:21

标签: c++ windows visual-studio-2010

HANDLE h = CreateFile( ... );
//...
int fd = _open_osfhandle( reinterpret_cast<intptr_t>(h), 0 );
_commit( fd );

// _close(); // Not required

根据MSDN

  

_close函数关闭与fd关联的文件。文件   描述符和底层OS文件句柄已关闭。因此,它是   如果文件最初打开,则无需调用CloseHandle   使用Win32函数CreateFile并转换为文件描述符   使用_open_osfhandle。

所以根据文档,如果我调用_close(),基础文件HANDLE(我的文件)也将关闭,这是我不想要的。

但是我不认为这回答了我如何处理_open_osfhandle返回的文件描述符以及它会发生什么。如果我只是忽略文件描述符并等到文件稍后关闭,这样可以吗?文件清理(CloseHandle())也会破坏文件描述符吗?

0 个答案:

没有答案