Provided by: manpages-pl-dev_20060617-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 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
       '\0'.  Nie jest sprawdzane przepełnienie bufora (zobacz BŁĘDY 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 '\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ą znak odczytany jako rzutowanie
       unsigned char na int lub EOF w przypadku końca pliku lub błędu.

       gets() i fgets() zwracają s w przypadku pomyślnego zakończenia, a  NULL
       w  przypadku  błędu  oraz  gdy  wystąpi  koniec  pliku,  a nie zostanie
       odczytany żaden znak.

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

ZGODNE Z

       ANSI - C, POSIX.1

BŁĘDY

       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()  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),  fopen(3), fread(3), fseek(3), puts(3),
       scanf(3), unlocked_stdio(3)