_open_osfhandle
將 C 執行時間檔案描述元與現有的作業系統檔句柄產生關聯。
語法
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
參數
osfhandle
操作系統檔句柄。
flags
允許的作業類型。
傳回值
如果成功,_open_osfhandle
會傳回 C 執行階段檔案描述項。 否則,它會傳回 -1。
備註
函 _open_osfhandle
式會配置 C 執行時間檔案描述元。 它會將此檔案描述項與 所指定的操作系統檔句柄產生 osfhandle
關聯。 若要避免編譯程式警告,請將 osfhandle
自變數從 HANDLE
intptr_t
轉換成 。 自 flags
變數是從 中 <fcntl.h>
定義的一或多個指令清單常數所形成的整數表達式。 您可以使用位 「or」 (|
) 運算子來結合兩個或多個指令清單常數來形成 flags
自變數。
這些指令清單常數定義於 中 <fcntl.h>
:
常數 | 描述 |
---|---|
_O_APPEND |
在每次寫入作業之前,將檔案指標置放到檔案的結尾。 |
_O_RDONLY |
開啟檔案為僅供讀取。 |
_O_TEXT |
以 ANSI 文字 (翻譯) 模式開啟檔案。 |
_O_WTEXT |
以 Unicode (已轉譯 UTF-16) 模式開啟檔案。 |
呼叫會將 _open_osfhandle
Win32 檔案句柄的擁有權轉移給檔案描述元。 若要關閉使用 _open_osfhandle
開啟的檔案,請呼叫 _close
。 呼叫 也會關閉 _close
基礎OS檔案句柄。 請勿在原始句柄上呼叫 Win32 函式 CloseHandle
。 如果檔案描述元是由 FILE *
數據流所擁有,則呼叫 fclose
會關閉檔案描述元和基礎句柄。 在這裡情況下,請勿在檔案描述元或CloseHandle
原始句柄上呼叫 _close
。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
常式 | 必要的標頭 |
---|---|
_open_osfhandle |
<io.h> |
如需相容性詳細資訊,請參閱相容性。