Provided by:
manpages-pl-dev_20060617-1_all 
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)