_get_osfhandle
Načte popisovač souboru operačního systému, který je přidružený k zadanému popisovači souboru.
Syntaxe
intptr_t _get_osfhandle(
int fd
);
Parametry
fd
Popisovač existujícího souboru.
Vrácená hodnota
Vrátí popisovač souboru operačního systému, pokud fd
je platný. V opačném případě se vyvolá neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, vrátí INVALID_HANDLE_VALUE
se (-1). Nastaví se také errno
na EBADF
hodnotu označující neplatný popisovač souboru. Pokud se chcete vyhnout upozornění, když se výsledek použije jako popisovač souboru Win32, přetypujte ho na HANDLE
typ.
Poznámka:
Pokud stdin
, stdout
a stderr
nejsou přidruženy ke streamu (například v aplikaci pro Windows bez okna konzoly), hodnoty popisovače souboru pro tyto datové proudy se vrátí jako _fileno
zvláštní hodnota -2. Podobně platí, že pokud jako parametr popisovače souboru použijete hodnotu 0, 1 nebo 2 místo výsledku volání _fileno
, _get_osfhandle
vrátí také speciální hodnotu -2, pokud popisovač souboru není přidružen k datovému proudu a nenastaví errno
. Nejedná se však o platnou hodnotu popisovače souboru a následná volání, která se pokusí použít, pravděpodobně selžou.
Další informace o EBADF
kódech chyb a dalších kódech chyb naleznete v tématuerrno
, _doserrno
, _sys_errlist
, a _sys_nerr
.
Poznámky
Chcete-li zavřít soubor, jehož operační systém (OS) popisovač souboru je získán voláním _get_osfhandle
_close
popisovače fd
souboru . Nikdy nevolejte CloseHandle
návratové hodnoty této funkce. Popisovač základního souboru operačního systému je vlastněný popisovačem fd
souboru a je zavřený při _close
zavolání fd
. Pokud popisovač souboru vlastní FILE *
datový proud, volání fclose
na tento FILE *
datový proud zavře popisovač souboru i popisovač základního operačního systému. V takovém případě nezavolejte _close
popisovač souboru.
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 |
---|---|
_get_osfhandle |
<io.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Viz také
Zpracování souborů
_close
_creat
, _wcreat
_dup
, _dup2
_open
, _wopen
_open_osfhandle