table of contents
- bookworm-backports 1:4.26.3.1-3~bpo12+1
- testing 1:4.26.3.1-3
- unstable 1:4.26.3.1-3
stdio(3) | Library Functions Manual | stdio(3) |
NAZWA¶
stdio - funkcje biblioteczne standardowego wejścia/wyjścia
BIBLIOTEKA¶
Standardowa biblioteka C (libc, -lc)
SKŁADNIA¶
#include <stdio.h>
FILE *stdin; FILE *stdout; FILE *stderr;
OPIS¶
Biblioteka standardowego wejścia/wyjścia zapewnia prosty i wydajny interfejs buforowanych strumieni wejścia/wyjścia. Wejście i wyjście jest przypisywane do logicznych strumieni danych, a fizyczna charakterystyka wejścia/wyjścia jest ukrywana. Funkcje i makra wypisano poniżej; więcej informacji jest dostępnych w poszczególnych stronach podręcznika systemowego.
Strumień jest wiązany z zewnętrznym plikiem (który może być fizycznym urządzeniem) przez otwarcie pliku, co może wymagać utworzenia nowego pliku. Utworzenie istniejącego pliku spowoduje odrzucenie jego wcześniejszej zawartości. Jeśli plik może obsłużyć żądania pozycjonowania (np. jest to plik na dysku, a nie terminal), to wskaźnik pozycji pliku związany ze strumieniem jest umieszczany na początku pliku (bajt zero), chyba że plik otwarto w trybie dopisywania. W trybie dopisywania nie jest określone, czy wskaźnik pozycji zostanie umieszczony na początku, czy na końcu pliku. Wskaźnik pozycji jest utrzymywany przez kolejne odczyty, zapisy i żądania pozycjonowania. Wszelkie wejście zachowuje się, jakby znaki były odczytywane przez kolejne wywołania do funkcji fgetc(3); wszelkie wyjście zachowuje się, jakby wszystkie znaki były zapisywane przez kolejne wywołania do funkcji fputc(3).
Plik jest oddzielany od strumienia przez zamknięcie pliku. Strumienie wyjściowe są opróżniane (wszelka niezapisana zawartość bufora jest transferowana do środowiska gospodarza) przed oddzieleniem strumienia z pliku. Wartość wskaźnika do obiektu FILE jest nieokreślona po zamknięciu pliku (śmieci).
Plik może być później otwarty ponownie, przez wykonanie tego samego lub innego programu, a jego zawartość odzyskana lub zmodyfikowana (jeśli może być spozycjonowany od początku). Jeśli główna funkcja powróci do swego pierwotnego wywołującego lub jeśli wywołano funkcję exit(3), wszystkie otwarte pliki są zamykane (stąd wszystkie strumienie wyjściowe są opróżniane) przed zakończeniem programu. Inne sposoby na zakończenie programu, takie jak abort(3), nie troszczą się o poprawne zamknięcie plików.
Przy uruchomieniu programu, trzy strumienie tekstowe są predefiniowane i nie trzeba ich jawnie otwierać: standardowe wejście (ang. standard input – do odczytu zwykłego wejścia), standardowe wyjście (ang. standard output – do wypisywania zwykłego wyjścia) oraz standardowe wyjście błędów (ang. standard error – do wypisywania wyjścia diagnostycznego). Strumienie tę są nazywane skrótowo stdin, stdout i stderr. Przy otwarciu, strumień standardowego wyjścia błędów nie jest w pełni buforowany; strumienie standardowego wejścia i wyjścia są w pełni buforowane wtedy i tylko wtedy, gdy strumienie te nie odnoszą się do urządzenia interaktywnego.
Strumienie wyjściowe odnoszące się do urządzeń terminali są domyślnie zawsze buforowane do wiersza; oczekujące wyjście do tych strumieni jest zapisywane automatycznie, gdy tylko odczytywany jest strumień wejściowy odnoszący się do urządzenia terminala. W przypadkach, gdy po wypisaniu części wiersza na terminal wyjściowy dokonywana jest znaczna ilość obliczeń, konieczne jest dokonanie fflush(3) na standardowym wyjściu przed zajęciem się obliczeniami, dzięki czemu pojawi się wyjście.
Biblioteka stdio jest częścią biblioteki libc i funkcje są ładowane automatycznie w miarę potrzeb przez cc(1). Rozdziały SKŁADNIA poniższych stron podręcznika systemowego wskazują, których plików include należy użyć, jak wygląda deklaracja kompilatora dla funkcji oraz które zmienne zewnętrzne przyjmują.
Nazwy, które zdefiniowano jako makra, nie mogą być użyte ponownie, przed usunięciem ich aktualnych definicji za pomocą #undef; dotyczy to: BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END, SEEK_SET, SEEK_CUR, TMP_MAX, clearerr, feof, ferror, fileno, getc, getchar, putc, putchar, stderr, stdin, stdout. Istnieją wersje zaimplementowane jako funkcje następujących makr: feof, ferror, clearerr, fileno, getc, getchar, putc i putchar; zostaną one użyte, jeśli usunie się definicje makr.
Lista funkcji¶
Funkcja | Opis |
clearerr(3) | sprawdza i zmienia stan strumienia |
fclose(3) | zamyka strumień |
fdopen(3) | funkcje otwarcia strumienia |
feof(3) | sprawdza i zmienia stan strumienia |
ferror(3) | sprawdza i zmienia stan strumienia |
fflush(3) | wypróżnia bufory strumienia |
fgetc(3) | odczytuje następny znak lub słowo ze strumienia wejściowego |
fgetpos(3) | zmienia pozycję w strumieniu |
fgets(3) | odczytuje wiersz ze strumienia |
fileno(3) | zwraca liczbowy deskryptor strumienia z argumentu |
fmemopen(3) | otwiera pamięć jako strumień |
fopen(3) | funkcje otwarcia strumienia |
fopencookie(3) | otwiera własny strumień |
fprintf(3) | konwertuje formatowanie wyjściowe |
fpurge(3) | wypróżnia bufory strumienia |
fputc(3) | wypisuje znak lub słowo do strumienia |
fputs(3) | wypisuje wiersz do strumienia |
fread(3) | odczytuje/zapisuje strumień binarny |
freopen(3) | funkcje otwarcia strumienia |
fscanf(3) | konwertuje format wejściowy |
fseek(3) | zmienia pozycję w strumieniu |
fsetpos(3) | zmienia pozycję w strumieniu |
ftell(3) | zmienia pozycję w strumieniu |
fwrite(3) | odczytuje/zapisuje strumień binarny |
getc(3) | odczytuje następny znak lub słowo ze strumienia wejściowego |
getchar(3) | odczytuje następny znak lub słowo ze strumienia wejściowego |
gets(3) | odczytuje wiersz ze strumienia |
getw(3) | odczytuje następny znak lub słowo ze strumienia wejściowego |
mktemp(3) | tworzy (unikatową) nazwę pliku tymczasowego |
open_memstream(3) | otwiera strumień bufora pamięci dynamicznej |
open_wmemstream(3) | otwiera strumień bufora pamięci dynamicznej |
perror(3) | systemowe komunikaty o błędach |
printf(3) | konwertuje formatowanie wyjściowe |
putc(3) | wypisuje znak lub słowo do strumienia |
putchar(3) | wypisuje znak lub słowo do strumienia |
puts(3) | wypisuje wiersz do strumienia |
putw(3) | wypisuje znak lub słowo do strumienia |
remove(3) | usuwa wpis katalogu |
rewind(3) | zmienia pozycję w strumieniu |
scanf(3) | konwertuje format wejściowy |
setbuf(3) | działania buforowania strumienia |
setbuffer(3) | działania buforowania strumienia |
setlinebuf(3) | działania buforowania strumienia |
setvbuf(3) | działania buforowania strumienia |
sprintf(3) | konwertuje formatowanie wyjściowe |
sscanf(3) | konwertuje format wejściowy |
strerror(3) | systemowe komunikaty o błędach |
sys_errlist(3) | systemowe komunikaty o błędach |
sys_nerr(3) | systemowe komunikaty o błędach |
tempnam(3) | funkcje pliku tymczasowego |
tmpfile(3) | funkcje pliku tymczasowego |
tmpnam(3) | funkcje pliku tymczasowego |
ungetc(3) | zwraca znak ze strumienia wejściowego |
vfprintf(3) | konwertuje formatowanie wyjściowe |
vfscanf(3) | konwertuje format wejściowy |
vprintf(3) | konwertuje formatowanie wyjściowe |
vscanf(3) | konwertuje format wejściowy |
vsprintf(3) | konwertuje formatowanie wyjściowe |
vsscanf(3) | konwertuje format wejściowy |
STANDARDY¶
C11, POSIX.1-2008.
HISTORIA¶
C89, POSIX.1-2001.
ZOBACZ TAKŻE¶
close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3)
TŁUMACZENIE¶
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
2 maja 2024 r. | Linux man-pages 6.9.1 |