fgetc, fgets, getc, getchar, gets, ungetc − input of
characters and strings


);int fgetc(FILE *stream

, int char *fgets(char *s

);int getc(FILE *stream

int getchar(void);

);char *gets(char *s

, FILE *int ungetc(int c

reads the next character from stream and returns it as an
unsignedchar cast to an or EOF on end of file or error.

     is equivalent to except that it may be implemented as a
macro which evaluates stream more than once.

     is equivalent to )getc(stdin

     reads a line from stdin into the buffer pointed to by s
until either a terminating newline or which it replaces with
a null byte ('\0').  No check for buffer overrun is
performed (see BUGS below).

     reads in at most one less than size characters from
stream and stores them into the buffer pointed to by Reading
stops after an EOF or a newline.  If a newline is read, it
is stored into the buffer.  A terminating null byte ('\0')
is stored after the last character in the buffer.

     pushes c back to cast to where it is available for
subsequent read operations.  Pushed‐back characters will be
returned in reverse order; only one pushback is guaranteed.

     Calls to the functions described here can be mixed with
each other and with calls to other input functions from the
stdio library for the same input stream.

     For nonlocking counterparts, see

and return the character read as an unsignedchar cast to an
int or EOF on end of file or error.

     and return s on success, and NULL on error or when end
of file occurs while no characters have been read.


     returns c on success, or EOF on error.

For an explanation of the terms used in this section, see

│Interface Attribute     Value   │
│          │ Thread safety MT‐Safe │

C89, C99, POSIX.1‐2001.

LSB deprecates POSIX.1‐2008 marks obsolescent.  ISO C11
removes the specification of from the C language, and since
version 2.16, glibc header files don’t expose the function
declaration if the _ISOC11_SOURCE feature test macro is

Never use Because it is impossible to tell without knowing
the data in advance how many characters will read, and
because will continue to store characters past the end of
the buffer, it is extremely dangerous to use.  It has been
used to break computer security.  Use instead.

     It is not advisable to mix calls to input functions
from the stdio library with low‐level calls to for the file
descriptor associated with the input stream; the results
will be undefined and very probably not what you want.

This page is part of release 3.53 of the Linux man‐pages
project.  A description of the project, and information
about reporting bugs, can be found at−pages/.