Provided by: manpages-pl-dev_0.5-1_all bug

NAZWA

       fgetc, fgets, getc, getchar, gets, ungetc - wprowadzanie znaków i łańcuchów znakowych

SKŁADNIA

       #include <stdio.h>

       int fgetc(FILE *stream);

       char *fgets(char *s, int size, FILE *stream);

       int getc(FILE *stream);

       int getchar(void);

       char *gets(char *s);

       int ungetc(int c, FILE *stream);

OPIS

       fgetc() odczytuje następny znak ze stream i zwraca go jako rzutowanie unsigned char na int
       lub zwraca EOF w przypadku końca pliku albo błędu.

       getc() jest równoważne fgetc() z tym wyjątkiem, że może być zaimplementowane  jako  makro,
       które wylicza stream więcej niż raz.

       getchar() jest równoważne getc(stdin).

       gets() odczytuje linię z stdin do bufora wskazywanego przez s aż do kończącego znaku nowej
       linii lub EOF, który  jest  zastępowany  przez  bajt  null  ('\0').  Nie  jest  sprawdzane
       przepełnienie bufora (zobacz BŁĘDY IMPLEMENTACJI poniżej).

       fgets()  odczytuje  co  najwyżej  o jeden mniej niż size znaków ze stream i umieszcza je w
       buforze wskazywanym przez s.  Odczyt kończy się po napotkaniu EOF lub znaku  nowej  linii.
       Jeśli  odczytany  zostanie  znak nowej linii, jest on przechowywany w buforze. Po ostatnim
       znaku w buforze jest umieszczany kończący bajt null ('\0').

       ungetc() odkłada c z powrotem do stream, rzutowane na unsigned char, o ile jest to możliwe
       dla  następnych  operacji  odczytu.  Odłożone  znaki będą zwracane w odwrotnej kolejności;
       tylko jedno pomyślne odłożenie jest zagwarantowane.

       Wywołania opisanych tu funkcji mogą być mieszane między sobą jak i  z  wywołaniami  innych
       funkcji wejściowych z biblioteki stdio operujących na tym samym strumieniu wejściowym.

       Informacje o nieblokujących odpowiednikach znajdują się w unlocked_stdio(3).

WARTOŚĆ ZWRACANA

       fgetc(),  getc()  i getchar() zwracają odczytany znak jako unsigned char  rzutowany na int
       lub zwracają EOF w przypadku błędu.

       gets() i fgets() zwracają s w przypadku pomyślnego zakończenia lub NULL w przypadku  błędu
       lub wystąpienia końca pliku przed odczytaniem jakiegokolwiek znaku.

       ungetc() zwraca c w przypadku pomyślnego zakończenia lub EOF w przypadku błędu.

ZGODNE Z

       C89, C99, POSIX.1-2001.

       LSB  uznaje  gets() za wychodzącą z użycia. POSIX.1-2008 oznacza ją jako przestarzałą. ISO
       C11 usuwa definicję gets() z języka C i od wersji 2.16 biblioteki glibc  pliki  nagłówkowe
       nie zawierają deklaracji tej funkcji, jeśli zdefiniowane jest makro _ISOC11_SOURCE.

BŁĘDY IMPLEMENTACJI

       Nigdy  nie  należy  używać  gets().  Funkcja  ta  jest szczególnie niebezpieczna w użyciu,
       ponieważ bez znajomości danych z góry nie  jest  możliwe  określenie,  ile  znaków  gets()
       przeczyta, i ponieważ gets() będzie kontynuować umieszczanie znaków po przekroczeniu końca
       bufora. Było to wykorzystywane do łamania zabezpieczeń komputerów. Zamiast  gets()  należy
       korzystać z fgets().

       Nie   jest   zalecane   mieszanie   wywołań  funkcji  wejściowych  z  biblioteki  stdio  z
       niskopoziomowymi wywołaniami read(2) dla deskryptora pliku stowarzyszonego ze  strumieniem
       wejściowym;  wyniki  będą  nieokreślone  i  z  dużym prawdopodobieństwem nie takie, jakich
       oczekiwano.

ZOBACZ TAKŻE

       read(2),  write(2),  ferror(3),  fgetwc(3),  fgetws(3),  fopen(3),   fread(3),   fseek(3),
       getline(3),     getwchar(3),    puts(3),    scanf(3),    ungetwc(3),    unlocked_stdio(3),
       feature_test_macros(7)

O STRONIE

       This page is part of release 3.52 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek  Borys  (PTM)
       <pborys@dione.ids.pl>,  Andrzej  Krzysztofowicz  (PTM) <ankry@green.mf.pg.gda.pl> i Robert
       Luberda <robert@debian.org>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   3.52
       oryginału.