#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);
fgetc() | Reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end of file or error. |
getc() | Is equivalent to fgetc() except that it may be implemented as a macro which evaluates stream more than once. |
getchar() | Is equivalent to getc(stdin). |
gets() | Reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF, which it replaces with '\0'. No check for buffer overrun is performed (see BUGS below). |
fgets() | Reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A '\0' is stored after the last character in the buffer. |
ungetc() | Pushes c back to stream, cast to unsigned char, where it is available for subsequent read operations. Pushed-back characters will be returned in reverse order; only one pushback is guaranteed. |
For non-locking counterparts, see unlocked_stdio(3).
It is not advisable to mix calls to input functions from the stdio library with low-level calls to read() for the file descriptor associated with the input stream; the results will be undefined and very probably not what you want.