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