stdio(3) Library Functions Manual stdio(3) NAZWA stdio - funkcje biblioteczne standardowego wejscia/wyjscia BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; OPIS Biblioteka standardowego wejscia/wyjscia zapewnia prosty i wydajny interfejs buforowanych strumieni wejscia/wyjscia. Wejscie i wyjscie jest przypisywane do logicznych strumieni danych, a fizyczna charakterystyka wejscia/wyjscia jest ukrywana. Funkcje i makra wypisano ponizej; wiecej informacji jest dostepnych w poszczegolnych stronach podrecznika systemowego. Strumien jest wiazany z zewnetrznym plikiem (ktory moze byc fizycznym urzadzeniem) przez otwarcie pliku, co moze wymagac utworzenia nowego pliku. Utworzenie istniejacego pliku spowoduje odrzucenie jego wczesniejszej zawartosci. Jesli plik moze obsluzyc zadania pozycjonowania (np. jest to plik na dysku, a nie terminal), to wskaznik pozycji pliku zwiazany ze strumieniem jest umieszczany na poczatku pliku (bajt zero), chyba ze plik otwarto w trybie dopisywania. W trybie dopisywania nie jest okreslone, czy wskaznik pozycji zostanie umieszczony na poczatku, czy na koncu pliku. Wskaznik pozycji jest utrzymywany przez kolejne odczyty, zapisy i zadania pozycjonowania. Wszelkie wejscie zachowuje sie, jakby znaki byly odczytywane przez kolejne wywolania do funkcji fgetc(3); wszelkie wyjscie zachowuje sie, jakby wszystkie znaki byly zapisywane przez kolejne wywolania do funkcji fputc(3). Plik jest oddzielany od strumienia przez zamkniecie pliku. Strumienie wyjsciowe sa oprozniane (wszelka niezapisana zawartosc bufora jest transferowana do srodowiska gospodarza) przed oddzieleniem strumienia z pliku. Wartosc wskaznika do obiektu FILE jest nieokreslona po zamknieciu pliku (smieci). Plik moze byc pozniej otwarty ponownie, przez wykonanie tego samego lub innego programu, a jego zawartosc odzyskana lub zmodyfikowana (jesli moze byc spozycjonowany od poczatku). Jesli glowna funkcja powroci do swego pierwotnego wywolujacego lub jesli wywolano funkcje exit(3), wszystkie otwarte pliki sa zamykane (stad wszystkie strumienie wyjsciowe sa oprozniane) przed zakonczeniem programu. Inne sposoby na zakonczenie programu, takie jak abort(3), nie troszcza sie o poprawne zamkniecie plikow. Przy uruchomieniu programu, trzy strumienie tekstowe sa predefiniowane i nie trzeba ich jawnie otwierac: standardowe wejscie (ang. standard input - do odczytu zwyklego wejscia), standardowe wyjscie (ang. standard output - do wypisywania zwyklego wyjscia) oraz standardowe wyjscie bledow (ang. standard error - do wypisywania wyjscia diagnostycznego). Strumienie te sa nazywane skrotowo stdin, stdout i stderr. Przy otwarciu, strumien standardowego wyjscia bledow nie jest w pelni buforowany; strumienie standardowego wejscia i wyjscia sa w pelni buforowane wtedy i tylko wtedy, gdy strumienie te nie odnosza sie do urzadzenia interaktywnego. Strumienie wyjsciowe odnoszace sie do urzadzen terminali sa domyslnie zawsze buforowane do wiersza; oczekujace wyjscie do tych strumieni jest zapisywane automatycznie, gdy tylko odczytywany jest strumien wejsciowy odnoszacy sie do urzadzenia terminala. W przypadkach, gdy po wypisaniu czesci wiersza na terminal wyjsciowy dokonywana jest znaczna ilosc obliczen, konieczne jest dokonanie fflush(3) na standardowym wyjsciu przed zajeciem sie obliczeniami, dzieki czemu pojawi sie wyjscie. Biblioteka stdio jest czescia biblioteki libc i funkcje sa ladowane automatycznie w miare potrzeb przez cc(1). Rozdzialy SKLADNIA ponizszych stron podrecznika systemowego wskazuja, ktorych plikow include nalezy uzyc, jak wyglada deklaracja kompilatora dla funkcji oraz ktore zmienne zewnetrzne przyjmuja. Nazwy, ktore zdefiniowano jako makra, nie moga byc uzyte ponownie, przed usunieciem ich aktualnych definicji za pomoca #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. Istnieja wersje zaimplementowane jako funkcje nastepujacych makr: feof, ferror, clearerr, fileno, getc, getchar, putc i putchar; zostana one uzyte, jesli usunie sie definicje makr. Lista funkcji Funkcja Opis ------------------------------------------------------------------------ clearerr(3) sprawdza i zmienia stan strumienia fclose(3) zamyka strumien fdopen(3) funkcje otwarcia strumienia feof(3) sprawdza i zmienia stan strumienia ferror(3) sprawdza i zmienia stan strumienia fflush(3) wyproznia bufory strumienia fgetc(3) odczytuje nastepny znak lub slowo ze strumienia wejsciowego fgetpos(3) zmienia pozycje w strumieniu fgets(3) odczytuje wiersz ze strumienia fileno(3) zwraca liczbowy deskryptor strumienia z argumentu fmemopen(3) otwiera pamiec jako strumien fopen(3) funkcje otwarcia strumienia fopencookie(3) otwiera wlasny strumien fprintf(3) konwertuje formatowanie wyjsciowe fpurge(3) wyproznia bufory strumienia fputc(3) wypisuje znak lub slowo do strumienia fputs(3) wypisuje wiersz do strumienia fread(3) odczytuje/zapisuje strumien binarny freopen(3) funkcje otwarcia strumienia fscanf(3) konwertuje format wejsciowy fseek(3) zmienia pozycje w strumieniu fsetpos(3) zmienia pozycje w strumieniu ftell(3) zmienia pozycje w strumieniu fwrite(3) odczytuje/zapisuje strumien binarny getc(3) odczytuje nastepny znak lub slowo ze strumienia wejsciowego getchar(3) odczytuje nastepny znak lub slowo ze strumienia wejsciowego gets(3) odczytuje wiersz ze strumienia getw(3) odczytuje nastepny znak lub slowo ze strumienia wejsciowego mktemp(3) tworzy (unikatowa) nazwe pliku tymczasowego open_memstream(3) otwiera strumien bufora pamieci dynamicznej open_wmemstream(3) otwiera strumien bufora pamieci dynamicznej perror(3) systemowe komunikaty o bledach printf(3) konwertuje formatowanie wyjsciowe putc(3) wypisuje znak lub slowo do strumienia putchar(3) wypisuje znak lub slowo do strumienia puts(3) wypisuje wiersz do strumienia putw(3) wypisuje znak lub slowo do strumienia remove(3) usuwa wpis katalogu rewind(3) zmienia pozycje w strumieniu scanf(3) konwertuje format wejsciowy setbuf(3) dzialania buforowania strumienia setbuffer(3) dzialania buforowania strumienia setlinebuf(3) dzialania buforowania strumienia setvbuf(3) dzialania buforowania strumienia sprintf(3) konwertuje formatowanie wyjsciowe sscanf(3) konwertuje format wejsciowy strerror(3) systemowe komunikaty o bledach sys_errlist(3) systemowe komunikaty o bledach sys_nerr(3) systemowe komunikaty o bledach tempnam(3) funkcje pliku tymczasowego tmpfile(3) funkcje pliku tymczasowego tmpnam(3) funkcje pliku tymczasowego ungetc(3) zwraca znak ze strumienia wejsciowego vfprintf(3) konwertuje formatowanie wyjsciowe vfscanf(3) konwertuje format wejsciowy vprintf(3) konwertuje formatowanie wyjsciowe vscanf(3) konwertuje format wejsciowy vsprintf(3) konwertuje formatowanie wyjsciowe vsscanf(3) konwertuje format wejsciowy STANDARDY C11, POSIX.1-2008. HISTORIA C89, POSIX.1-2001. ZOBACZ TAKZE close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.18 21 wrzesnia 2025 r. stdio(3)