_open_osfhandle
Ordnet einen C-Laufzeitdateideskriptor einem vorhandenen Dateihandle des Betriebssystems zu.
Syntax
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Parameter
osfhandle
Betriebssystemdateihandle.
flags
Zulässige Vorgangsarten.
Rückgabewert
Im Erfolgsfall gibt _open_osfhandle
einen C-Laufzeit-Dateideskriptor zurück. Andernfalls wird –1 zurückgegeben.
Hinweise
Die _open_osfhandle
Funktion weist einen C-Laufzeitdateideskriptor zu. Sie ordnet diesen Dateideskriptor dem betriebssystemspezifischen Dateihandle osfhandle
zu. Um eine Compilerwarnung zu vermeiden, wandeln Sie das osfhandle
Argument in HANDLE
intptr_t
. Das flags
Argument ist ein ganzzahliger Ausdruck, der aus einer oder mehreren der manifestkonstanten gebildet wird, die in <fcntl.h>
. Sie können den bitweisen Operator "or" (|
) verwenden, um zwei oder mehr Manifestkonstanten zu kombinieren, um das flags
Argument zu bilden.
Diese Manifestkonstanten werden in <fcntl.h>
:
Konstante | Beschreibung |
---|---|
_O_APPEND |
Positioniert einen Dateizeiger vor jedem Schreibvorgang am Ende der Datei. |
_O_RDONLY |
Öffnet eine Datei nur zum Lesen. |
_O_TEXT |
Öffnet die Datei im ANSI-Textmodus (übersetzt). |
_O_WTEXT |
Öffnet eine Datei in Unicode (übersetzt UTF-16). |
Der _open_osfhandle
Aufruf überträgt den Besitz des Win32-Dateihandle an den Dateideskriptor. Rufen Sie _close
auf, um eine datei zu schließen, die mithilfe von _open_osfhandle
" geöffnet wird. Das zugrunde liegende Betriebssystemdateihandle wird auch durch einen Aufruf von _close
. Rufen Sie die Win32-Funktion CloseHandle
nicht auf dem ursprünglichen Handle auf. Wenn der Dateideskriptor im Besitz eines FILE *
Datenstroms ist, wird sowohl fclose
der Dateideskriptor als auch das zugrunde liegende Handle geschlossen. Rufen _close
Sie in diesem Fall weder den Dateideskriptor noch CloseHandle
das ursprüngliche Handle auf.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_open_osfhandle |
<io.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.