Sdílet prostřednictvím


_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 EBADFhodnotu 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, stdouta 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 fdsouboru . 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