_open_osfhandle

C ランタイム ファイル記述子を既存のオペレーティング システム ファイル ハンドルに関連付けます。

構文

int _open_osfhandle (
   intptr_t osfhandle,
   int flags
);

パラメーター

osfhandle
オペレーティング システム ファイル ハンドル。

flags
許可される操作の種類。

戻り値

正常に終了した場合、_open_osfhandle は C ランタイム ファイル記述子を返します。 それ以外のときは -1 が返されます。

解説

この関数は _open_osfhandle 、C ランタイム ファイル記述子を割り当てます。 このファイル記述子は、次で指定された osfhandleオペレーティング システム ファイル ハンドルに関連付けられます。 コンパイラの警告を回避するには、引数HANDLEintptr_tosfhandle . flags 引数は、<fcntl.h> で定義された 1 つ以上のマニフェスト定数で構成された整数式です。 ビットごとの "OR" 演算子 (|) を使用すると、2 つ以上のマニフェスト定数を組み合わせて flags 引数を形成できます。

次のマニフェスト定数は <fcntl.h> で定義されます。

定数 説明
_O_APPEND 書き込み操作の前に、毎回、ファイル ポインターをファイルの末尾に位置指定します。
_O_RDONLY 読み取り専用でファイルを開きます。
_O_TEXT ファイルをテキスト (変換) モードで開きます。
_O_WTEXT Unicode (UTF-16 に変換) モードでファイルを開きます。

この呼び出しにより _open_osfhandle 、Win32 ファイル ハンドルの所有権がファイル記述子に転送されます。 _open_osfhandle を使用して開いたファイルを閉じるには、_close を呼び出します。 基になる OS ファイル ハンドルは、次の呼び出し _closeによっても閉じられます。 元のハンドルで Win32 関数 CloseHandle を呼び出さないでください。 ファイル記述子がストリームによって FILE * 所有されている場合、ファイル記述子と基になるハンドルの両方を fclose 閉じる呼び出し。 この場合は、ファイル記述子またはCloseHandle元のハンドルを呼び出_closeさないでください。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

ルーチンによって返される値 必須ヘッダー
_open_osfhandle <io.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

ファイル処理
_get_osfhandle