I/O proudu
Tyto funkce zpracovávají data v různých velikostech a formátech, od jednotlivých znaků po velké datové struktury. Poskytují také ukládání do vyrovnávací paměti, což může zlepšit výkon. Výchozí velikost vyrovnávací paměti datového proudu je 4 KB. Tyto rutiny ovlivňují pouze vyrovnávací paměti vytvořené rutinami knihovny runtime a nemají žádný vliv na vyrovnávací paměti vytvořené operačním systémem.
Rutiny vstupně-výstupních operací streamu
Rutina | Použít |
---|---|
clearerr , clearerr_s |
Vymazat indikátor chyby pro stream |
fclose |
Zavření streamu |
_fcloseall |
Zavření všech otevřených datových proudů kromě stdin , stdout a stderr |
_fdopen , wfdopen |
Přidružení streamu k popisovači souboru otevřeného souboru |
feof |
Testování konce souboru ve streamu |
ferror |
Test chyby ve streamu |
fflush |
Vyprázdnění streamu do vyrovnávací paměti nebo úložného zařízení |
fgetc , fgetwc |
Čtení znaku ze streamu (verze getc funkcí a getwc ) |
_fgetchar , _fgetwchar |
Čtení znaku z stdin (verze getchar funkcí a getwchar ) |
fgetpos |
Získání ukazatele pozice datového proudu |
fgets , fgetws |
Čtení řetězce ze streamu |
_fileno |
Získání popisovače souboru přidruženého ke streamu |
_flushall |
Vyprázdnění všech datových proudů do vyrovnávací paměti nebo úložného zařízení |
fopen , _wfopen , fopen_s , _wfopen_s |
Otevření streamu |
fprintf , _fprintf_l , fwprintf , _fwprintf_l , fprintf_s , _fprintf_s_l , fwprintf_s , _fwprintf_s_l |
Zápis formátovaných dat do streamu |
fputc , fputwc |
Zápis znaku do datového proudu (verze putc funkcí a putwc ) |
_fputchar , _fputwchar |
Zápis znaku do stdout (verze putchar funkcí a putwchar ) |
fputs , fputws |
Zápis řetězce do streamu |
fread |
Čtení neformátovaných dat ze streamu |
freopen , _wfreopen , freopen_s , _wfreopen_s |
Změna přiřazení FILE ukazatele streamu na nový soubor nebo zařízení |
fscanf , fwscanf , fscanf_s , _fscanf_s_l , fwscanf_s , _fwscanf_s_l |
Čtení formátovaných dat ze streamu |
fseek , _fseeki64 |
Přesunout umístění souboru do daného umístění |
fsetpos |
Nastavit ukazatel pozice datového proudu |
_fsopen , _wfsopen |
Otevření streamu se sdílením souborů |
ftell , _ftelli64 |
Získání aktuální pozice souboru |
fwrite |
Zápis neformátovaných datových položek do streamu |
getc , getwc |
Čtení znaku ze streamu fgetc (verze maker a fgetwc ) |
getchar , getwchar |
Čtení znaku fgetchar z stdin (verze maker afgetwchar ) |
_getmaxstdio |
Vrátí počet současně otevřených souborů povolených na úrovni vstupně-výstupních operací datového proudu. |
gets_s , _getws_s |
Čtení řádku z stdin |
_getw |
Čtení binárního souboru int ze streamu |
printf , _printf_l , wprintf , _wprintf_l ,printf_s , _printf_s_l , wprintf_s , _wprintf_s_l |
Zápis formátovaných dat do stdout |
putc , putwc |
Zápis znaku do datového proudu (verze fputc maker a fputwc ) |
putchar , putwchar |
Zápis znaku do stdout (verze fputchar maker a fputwchar ) |
puts , _putws |
Zápis řádku do streamu |
_putw |
Zápis binárního souboru int do streamu |
rewind |
Přesunutí pozice souboru na začátek streamu |
_rmtmp |
Odebrání dočasných souborů vytvořených pomocí tmpfile |
scanf , _scanf_l , wscanf , _wscanf_l ,scanf_s , _scanf_s_l , wscanf_s , _wscanf_s_l |
Čtení formátovaných dat z stdin |
setbuf |
Řízení ukládání datových proudů do vyrovnávací paměti |
_setmaxstdio |
Nastavte maximální počet současně otevřených souborů na úrovni vstupně-výstupních operací datového proudu. |
setvbuf |
Řízení ukládání datových proudů do vyrovnávací paměti a velikosti vyrovnávací paměti |
_snprintf , _snwprintf , _snprintf_s , _snprintf_s_l , _snwprintf_s , _snwprintf_s_l |
Zápis formátovaných dat zadané délky do řetězce |
_snscanf , _snwscanf , _snscanf_s , _snscanf_s_l , _snwscanf_s , _snwscanf_s_l |
Čtení formátovaných dat zadané délky ze standardního vstupního datového proudu |
sprintf , swprintf , sprintf_s , _sprintf_s_l , swprintf_s , _swprintf_s_l |
Zápis formátovaných dat do řetězce |
sscanf , swscanf , _sscanf_s_l sscanf_s , swscanf_s , _swscanf_s_l |
Čtení formátovaných dat z řetězce |
_tempnam , _wtempnam |
Vygenerování dočasného názvu souboru v daném adresáři |
tmpfile , tmpfile_s |
Vytvoření dočasného souboru |
tmpnam , _wtmpnam , tmpnam_s , _wtmpnam_s |
Generování dočasného názvu souboru |
ungetc , ungetwc |
Nasdílení znaku zpět do datového proudu |
_vcprintf , _vcwprintf , _vcprintf_s , _vcprintf_s_l , _vcwprintf_s , _vcwprintf_s_l |
Zapište do konzoly formátovaná data. |
vfprintf , vfwprintf , vfprintf_s , _vfprintf_s_l , vfwprintf_s , _vfwprintf_s_l |
Zápis formátovaných dat do streamu |
vprintf , vwprintf , vprintf_s , _vprintf_s_l , vwprintf_s , _vwprintf_s_l |
Zápis formátovaných dat do stdout |
_vsnprintf , _vsnwprintf , vsnprintf_s , _vsnprintf_s , _vsnprintf_s_l , _vsnwprintf_s , _vsnwprintf_s_l |
Zápis formátovaných dat zadané délky do vyrovnávací paměti |
vsprintf , vswprintf , vsprintf_s , _vsprintf_s_l , vswprintf_s , _vswprintf_s_l |
Zápis formátovaných dat do vyrovnávací paměti |
Když program zahájí provádění, spouštěcí kód automaticky otevře několik datových proudů: standardní vstup (odkazován na stdin
), standardní výstup (odkaz na stdout
) a standardní chybu (na kterou stderr
odkazuje ). Tyto streamy jsou ve výchozím nastavení směrovány na konzolu (klávesnici a obrazovku). Slouží freopen
k přesměrování stdin
, stdout
nebo stderr
na diskový soubor nebo zařízení.
Soubory otevřené pomocí rutin streamu se ve výchozím nastavení ukládají do vyrovnávací paměti. Funkce stdout
se stderr
vyprázdní vždy, když jsou plné, nebo pokud píšete na znakové zařízení, po každém volání knihovny. Pokud se program ukončí neobvykle, výstupní vyrovnávací paměti nemusí být vyprázdněny, což vede ke ztrátě dat. Použijte fflush
nebo _flushall
zajistěte, aby byla vyrovnávací paměť přidružená k zadanému souboru vyprázdněna do operačního systému nebo aby byly vyprázdněny všechny otevřené vyrovnávací paměti. Operační systém může data před zápisem na disk ukládat do mezipaměti. Funkce commit-to-disk zajišťuje, že se obsah vyprázdněné vyrovnávací paměti neztratí, pokud dojde k selhání systému.
Obsah vyrovnávací paměti na disk můžete potvrdit dvěma způsoby:
Propojení se souborem COMMODE. OBJ pro nastavení příznaku globálního potvrzení. Výchozí nastavení globálního příznaku je
n
pro "no-commit".Nastavte příznak režimu na
c
hodnotu sfopen
nebo_fdopen
.
Jakýkoli soubor, který je výslovně otevřen s příznakem c
nebo n
příznakem, se chová podle příznaku bez ohledu na stav globálního potvrzení nebo příznaku no-commit.
Pokud váš program stream explicitně nezavře, po ukončení programu se datový proud automaticky zavře. Datový proud byste ale měli zavřít, jakmile se s ním program dokončí, protože počet datových proudů, které je možné otevřít najednou, je omezený. Informace _setmaxstdio
o tomto limitu najdete v tomto limitu.
Vstup může sledovat výstup přímo pouze při volání fflush
do nebo do funkce umístění souboru (fseek
, fsetpos
nebo rewind
). Za vstupem může následovat výstup bez volání funkce umístění souboru, pokud vstupní operace narazí na konec souboru.
Viz také
Vstup a výstup
Rutiny UCRT (Universal C runtime) podle kategorie
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro