Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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