我正在嘗試重定向子進程的輸出並將其返回給父節點FILE*
。如何關閉一個已轉換爲FILE *的句柄?
我基本上遵循Creating a Child Process with Redirected Input and Output的代碼示例。唯一的修改是,我包裹了整個事情的功能,做
return _fdopen(_open_osfhandle((intptr_t)g_hChildStd_OUT_Rd, _O_RDONLY), "rb");
的問題是,我要清理和fclose
拋出一個錯誤。在我做了_fdopen
之後,我是否應該關閉手柄?我該怎麼清理這裏?
「_open_osfhandle」的[文檔](http://msdn.microsoft.com/en-us/library/bdts1c9x.aspx)指出:「*要關閉用'_open_osfhandle'打開的文件,請調用'_close '。底層句柄也通過調用'_close'來關閉,所以不需要在原句柄上調用Win32函數'CloseHandle'。*「 – ildjarn 2012-04-27 21:21:50