Sdílet prostřednictvím


_open_osfhandle

Přidruží popisovač souboru za běhu jazyka C k existujícímu popisovači souborů operačního systému.

Syntaxe

int _open_osfhandle (
   intptr_t osfhandle,
   int flags
);

Parametry

osfhandle
Popisovač souboru operačního systému.

flags
Typy operací jsou povolené.

Vrácená hodnota

V případě úspěchu _open_osfhandle vrátí popisovač souboru za běhu jazyka C. V opačném případě vrátí hodnotu -1.

Poznámky

Funkce _open_osfhandle přidělí popisovač souboru za běhu jazyka C. Tento popisovač souboru přidruží k popisovači souboru operačního systému určeného osfhandle. Chcete-li zabránit upozornění kompilátoru, přetypujte osfhandle argument z HANDLE .intptr_t Argument flags je celočíselné výrazy vytvořené z jedné nebo více konstant manifestu definovaných v <fcntl.h>. Pomocí bitového operátoru "or" (|) můžete zkombinovat dvě nebo více konstant manifestu pro vytvoření argumentu flags .

Tyto konstanty manifestu jsou definovány v <fcntl.h>:

Konstanta Popis
_O_APPEND Umístí ukazatel souboru na konec souboru před každou operací zápisu.
_O_RDONLY Otevře soubor jen pro čtení.
_O_TEXT Otevře soubor v režimu textu ANSI (přeložený).
_O_WTEXT Otevře soubor v režimu Unicode (přeložený UTF-16).

Volání _open_osfhandle přenese vlastnictví popisovače souboru Win32 na popisovač souboru. Zavření souboru otevřeného pomocí volání _open_osfhandle_close. Podkladový popisovač souboru operačního systému je také uzavřen voláním _close. Nevolejte funkci CloseHandle Win32 na původním popisovači. Pokud popisovač souboru vlastní FILE * datový proud, volání, které fclose zavře popisovač souboru i podkladový popisovač. V takovém případě nezavolejte _close popisovač souboru ani CloseHandle na původní popisovač.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
_open_osfhandle <io.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Viz také

Zpracování souborů
_get_osfhandle