We/Wy strumienia
Te funkcje przetwarzają dane w różnych rozmiarach i formatach— od pojedynczych znaków do dużych struktur danych. Zapewniają one również buforowanie, co może poprawić wydajność. Domyślny rozmiar buforu strumienia to 4K. Te procedury mają wpływ tylko na utworzone przez procedury biblioteki czasu wykonywania i nie mają wpływu na utworzone przez system operacyjny.
Procedury we/wy strumienia
Procedura | Używanie |
---|---|
clearerr , clearerr_s |
Wyczyść wskaźnik błędu dla strumienia |
fclose |
Zamknij strumień |
_fcloseall |
Zamknij wszystkie otwarte strumienie z wyjątkiem stdin , stdout i stderr |
_fdopen , wfdopen |
Kojarzenie strumienia z deskryptorem plików otwartego pliku |
feof |
Testowanie końca pliku w strumieniu |
ferror |
Testowanie pod kątem błędu w strumieniu |
fflush |
Opróżnianie strumienia do buforu lub urządzenia magazynu |
fgetc , fgetwc |
Odczyt znaku ze strumienia getc (wersje funkcji i getwc ) |
_fgetchar , _fgetwchar |
Odczyt znaku z stdin (wersje getchar funkcji i getwchar ) |
fgetpos |
Pobieranie wskaźnika położenia strumienia |
fgets , fgetws |
Odczytywanie ciągu ze strumienia |
_fileno |
Pobieranie deskryptora plików skojarzonego ze strumieniem |
_flushall |
Opróżnianie wszystkich strumieni do buforu lub urządzenia magazynu |
fopen , , _wfopen , , fopen_s _wfopen_s |
Otwieranie strumienia |
fprintf , _fprintf_l , , fwprintf , _fwprintf_l fprintf_s , , _fprintf_s_l , , fwprintf_s _fwprintf_s_l |
Zapisywanie sformatowanych danych do strumienia |
fputc , fputwc |
Zapisywanie znaku w strumieniu (wersje putc funkcji i putwc ) |
_fputchar , _fputwchar |
Zapisz znak do stdout (wersje putchar funkcji i putwchar ) |
fputs , fputws |
Zapisywanie ciągu w strumieniu |
fread |
Odczytywanie niesformatowanych danych ze strumienia |
freopen , , _wfreopen , , freopen_s _wfreopen_s |
Ponowne przypisywanie FILE wskaźnika strumienia do nowego pliku lub urządzenia |
fscanf , , fwscanf , fscanf_s , _fscanf_s_l , , fwscanf_s _fwscanf_s_l |
Odczytywanie sformatowanych danych ze strumienia |
fseek , _fseeki64 |
Przenieś położenie pliku do danej lokalizacji |
fsetpos |
Ustawianie wskaźnika położenia strumienia |
_fsopen , _wfsopen |
Otwieranie strumienia z udostępnianiem plików |
ftell , _ftelli64 |
Pobieranie bieżącej pozycji pliku |
fwrite |
Zapisywanie niesformatowanych elementów danych w celu przesyłania strumieniowego |
getc , getwc |
Odczytywanie znaku ze strumienia (wersje fgetc makr i fgetwc ) |
getchar , getwchar |
Odczytaj znak z stdin (wersje fgetchar makr i fgetwchar ) |
_getmaxstdio |
Zwraca liczbę jednocześnie otwartych plików dozwolonych na poziomie we/wy strumienia. |
gets_s , _getws_s |
Odczyt wiersza z stdin |
_getw |
Odczytywanie danych binarnych int ze strumienia |
printf , , , , , _printf_s_l , wprintf_s printf_s _wprintf_l wprintf _printf_l _wprintf_s_l |
Zapisywanie sformatowanych danych do stdout |
putc , putwc |
Zapisywanie znaku w strumieniu (wersje fputc makr i fputwc ) |
putchar , putwchar |
Zapisz znak do stdout (wersje fputchar makr i fputwchar ) |
puts , _putws |
Pisanie wiersza do strumienia |
_putw |
Zapisywanie danych binarnych int do strumienia |
rewind |
Przenieś położenie pliku na początek strumienia |
_rmtmp |
Usuwanie plików tymczasowych utworzonych przez program tmpfile |
scanf , , , , , _scanf_s_l , wscanf_s scanf_s _wscanf_l wscanf _scanf_l _wscanf_s_l |
Odczytywanie sformatowanych danych z stdin |
setbuf |
Buforowanie strumienia sterowania |
_setmaxstdio |
Ustaw maksymalną liczbę jednocześnie otwartych plików na poziomie we/wy strumienia. |
setvbuf |
Buforowanie strumienia sterowania i rozmiar buforu |
_snprintf , , _snwprintf , _snprintf_s , _snprintf_s_l , , _snwprintf_s _snwprintf_s_l |
Zapisywanie sformatowanych danych o określonej długości do ciągu |
_snscanf , , _snwscanf , _snscanf_s , _snscanf_s_l , , _snwscanf_s _snwscanf_s_l |
Odczytywanie sformatowanych danych o określonej długości ze standardowego strumienia wejściowego. |
sprintf , , swprintf , sprintf_s , _sprintf_s_l , , swprintf_s _swprintf_s_l |
Zapisywanie sformatowanych danych w ciągu |
sscanf , , swscanf , sscanf_s _sscanf_s_l, swscanf_s , _swscanf_s_l |
Odczytywanie sformatowanych danych z ciągu |
_tempnam , _wtempnam |
Generowanie tymczasowej nazwy pliku w danym katalogu |
tmpfile , tmpfile_s |
Tworzenie pliku tymczasowego |
tmpnam , , _wtmpnam , , tmpnam_s _wtmpnam_s |
Generowanie nazwy pliku tymczasowego |
ungetc , ungetwc |
Odepchnij znak z powrotem do strumienia |
_vcprintf , , _vcwprintf , _vcprintf_s , _vcprintf_s_l , , _vcwprintf_s _vcwprintf_s_l |
Zapisz sformatowane dane w konsoli programu . |
vfprintf , , vfwprintf , vfprintf_s , _vfprintf_s_l , , vfwprintf_s _vfwprintf_s_l |
Zapisywanie sformatowanych danych do strumienia |
vprintf , , vwprintf , vprintf_s , _vprintf_s_l , , vwprintf_s _vwprintf_s_l |
Zapisywanie sformatowanych danych do stdout |
_vsnprintf , _vsnwprintf , ,vsnprintf_s , _vsnprintf_s , _vsnprintf_s_l , , _vsnwprintf_s _vsnwprintf_s_l |
Zapisywanie sformatowanych danych o określonej długości do buforu |
vsprintf , , vswprintf , vsprintf_s , _vsprintf_s_l , , vswprintf_s _vswprintf_s_l |
Zapisywanie sformatowanych danych do buforu |
Po rozpoczęciu wykonywania programu kod uruchamiania automatycznie otwiera kilka strumieni: standardowe dane wejściowe (wskazywane przez stdin
), standardowe dane wyjściowe (wskazywane przez stdout
) i błąd standardowy (wskazywany przez stderr
). Te strumienie są domyślnie kierowane do konsoli (klawiatury i ekranu). Użyj freopen
polecenia , aby przekierować stdin
plik , stdout
lub stderr
do pliku dysku lub urządzenia.
Pliki otwierane przy użyciu procedur strumienia są domyślnie buforowane. Funkcje stdout
i stderr
są opróżniane za każdym razem, gdy są pełne lub, jeśli piszesz na urządzeniu znakowym, po każdym wywołaniu biblioteki. Jeśli program zakończy się nieprawidłowo, wyjściowe mogą nie być opróżniane, co powoduje utratę danych. Użyj fflush
polecenia lub _flushall
, aby upewnić się, że bufor skojarzony z określonym plikiem jest opróżniany do systemu operacyjnego lub wszystkie otwarte są opróżniane. System operacyjny może buforować dane przed zapisaniem ich na dysku. Funkcja commit-to-disk gwarantuje, że opróżniona zawartość buforu nie zostanie utracona, jeśli wystąpi awaria systemu.
Istnieją dwa sposoby zatwierdzania zawartości buforu na dysku:
Połącz z plikiem COMMODE. OBJ, aby ustawić flagę zatwierdzenia globalnego. Domyślnym ustawieniem flagi globalnej jest
n
" no-commit".Ustaw flagę trybu na
c
wartość zfopen
lub_fdopen
.
Każdy plik otwarty z flagą lub n
zachowuje się zgodnie z c
flagą, niezależnie od stanu flagi globalnego zatwierdzenia/braku zatwierdzenia.
Jeśli program nie zamyka jawnie strumienia, strumień jest automatycznie zamykany po zakończeniu programu. Jednak po zakończeniu działania programu należy zamknąć strumień, ponieważ liczba strumieni, które mogą być otwarte w jednym momencie, jest ograniczona. Zobacz _setmaxstdio
, aby uzyskać informacje na temat tego limitu.
Dane wejściowe mogą podążać bezpośrednio za danymi wyjściowymi tylko za pomocą interweniowania wywołania funkcji fflush
lub do funkcji pozycjonowania plików (fseek
, fsetpos
, lub rewind
). Dane wejściowe mogą być wykonywane po danych wyjściowych bez interweniowania wywołania funkcji pozycjonowania plików, jeśli operacja wejściowa napotka koniec pliku.
Zobacz też
Dane wejściowe i wyjściowe
Procedury czasu wykonywania języka Universal C według kategorii