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žívání |
---|---|
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_l wprintf _printf_s_l printf_s , 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_l wscanf _scanf_s_l scanf_s , 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