fclose
, _fcloseall
Zavře datový proud (fclose
) nebo zavře všechny otevřené datové proudy (_fcloseall
).
Syntaxe
int fclose(
FILE *stream
);
int _fcloseall( void );
Parametry
stream
Ukazatel na FILE
strukturu.
Vrácená hodnota
fclose
vrátí hodnotu 0, pokud se datový proud úspěšně zavře. _fcloseall
vrátí celkový počet uzavřených datových proudů. Obě funkce se vrátí EOF
k označení chyby.
Poznámky
Funkce fclose
se zavře stream
. Pokud stream
je NULL
, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, fclose
nastaví errno
hodnotu EINVAL
a vrátí hodnotu EOF
. Před voláním této funkce doporučujeme vždy zkontrolovat stream
ukazatel.
Další informace o návratových kódech naleznete v tématu errno
, _doserrno
, _sys_errlist
a _sys_nerr
.
Funkce _fcloseall
zavře všechny otevřené proudy s výjimkou stdin
, stdout
stderr
(a, v MS-DOS a _stdaux
_stdprn
). Také zavře a odstraní všechny dočasné soubory vytvořené tmpfile
. V obou funkcích se před uzavřením vyprázdní všechny vyrovnávací paměti přidružené ke streamu. Vyrovnávací paměti přidělené systémem se uvolní při zavření datového proudu. Vyrovnávací paměti přiřazené uživatelem setbuf
a setvbuf
nejsou automaticky uvolněny.
Poznámka:
Když fclose
nebo _fcloseall
funkce slouží k zavření datového proudu, podkladový popisovač souboru a popisovač souboru operačního systému (nebo soket) jsou také zavřené. Proto pokud byl soubor původně otevřen jako popisovač souboru nebo popisovač souboru a je zavřený pomocí fclose
, nezavírejte také volání _close
pro zavření popisovače souboru; a nevolejte funkci CloseHandle
Win32 pro zavření popisovače souboru.
fclose
a _fcloseall
zahrňte kód, který chrání před rušením před jinými vlákny. Informace o nezamykání verze fclose
, viz _fclose_nolock
.
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
Function | Požadovaný hlavičkový soubor |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Podívejte se na příklad pro fopen
.
Viz také
Vstupně-výstupní operace streamu
_close
_fdopen
, _wfdopen
fflush
fopen
, _wfopen
freopen
, _wfreopen