_open_osfhandle
C ランタイム ファイル記述子を既存のオペレーティング システム ファイル ハンドルに関連付けます。
構文
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
パラメーター
osfhandle
オペレーティング システム ファイル ハンドル。
flags
許可される操作の種類。
戻り値
正常に終了した場合、_open_osfhandle
は C ランタイム ファイル記述子を返します。 それ以外のときは -1 が返されます。
解説
この関数は _open_osfhandle
、C ランタイム ファイル記述子を割り当てます。 このファイル記述子は、次で指定された osfhandle
オペレーティング システム ファイル ハンドルに関連付けられます。 コンパイラの警告を回避するには、引数HANDLE
intptr_t
を osfhandle
. 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」を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示