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 bufory utworzone przez procedury biblioteki czasu wykonywania i nie mają wpływu na bufory 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_l , wprintf , _wprintf_l ,printf_s , _printf_s_l , wprintf_s , _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_l , wscanf , _wscanf_l ,scanf_s , _scanf_s_l , wscanf_s , _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, bufory 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 bufory 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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla