_open_osfhandle
Kojarzy deskryptor pliku w języku C z istniejącym uchwytem plików systemu operacyjnego.
Składnia
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Parametry
osfhandle
Dojście do plików systemu operacyjnego.
flags
Dozwolone typy operacji.
Wartość zwracana
Jeśli operacja powiedzie się, _open_osfhandle
zwraca deskryptor pliku czasu wykonywania języka C. W przeciwnym razie zwraca wartość -1.
Uwagi
Funkcja _open_osfhandle
przydziela deskryptor pliku czasu wykonywania języka C. Kojarzy ten deskryptor plików z uchwytem plików systemu operacyjnego określonym przez osfhandle
. Aby uniknąć ostrzeżenia kompilatora, rzutuj osfhandle
argument z HANDLE
na intptr_t
. Argument flags
to wyrażenie całkowite utworzone na podstawie co najmniej jednej stałej manifestu zdefiniowanej w elememencie <fcntl.h>
. Możesz użyć operatora bitowego "lub" (|
), aby połączyć co najmniej dwie stałe manifestu w celu utworzenia argumentu flags
.
Te stałe manifestu są definiowane w pliku <fcntl.h>
:
Stała | opis |
---|---|
_O_APPEND |
Umieszcza wskaźnik pliku na końcu pliku przed każdą operacją zapisu. |
_O_RDONLY |
Otwiera plik tylko do odczytu. |
_O_TEXT |
Otwiera plik w trybie tekstowym ANSI (przetłumaczonym). |
_O_WTEXT |
Otwiera plik w trybie Unicode (przetłumaczony utF-16). |
Wywołanie _open_osfhandle
przenosi własność uchwytu pliku Win32 do deskryptora plików. Aby zamknąć plik otwarty przy użyciu metody _open_osfhandle
, wywołaj metodę _close
. Dojście do pliku systemu operacyjnego jest również zamykane przez wywołanie metody _close
. Nie wywołujej funkcji CloseHandle
Win32 na oryginalnym uchwytie. Jeśli deskryptor plików jest własnością strumienia FILE *
, wywołanie w celu fclose
zamknięcia deskryptora plików i bazowego uchwytu. W takim przypadku nie należy wywoływać _close
deskryptora plików ani CloseHandle
oryginalnego uchwytu.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_open_osfhandle |
<io.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.