| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- GETS(3) Linux Programmer's Manual GETS(3)
- NAME
- fgetc, fgets, getc, getchar, gets, ungetc - input of characters and
- strings
- SYNOPSIS
- #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);
- DESCRIPTION
- 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 a null byte
- ('\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 terminating null byte ('\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.
- 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 unlocked_stdio(3).
- RETURN VALUE
- fgetc(), getc() and getchar() return the character read as an unsigned
- char cast to an int or EOF on end of file or error.
- gets() and fgets() return s on success, and NULL on error or when end
- of file occurs while no characters have been read.
- ungetc() returns c on success, or EOF on error.
- CONFORMING TO
- C89, C99, POSIX.1-2001. LSB deprecates gets(). POSIX.1-2008 marks
- gets() obsolescent.
- BUGS
- Never use gets(). Because it is impossible to tell without knowing the
- data in advance how many characters gets() will read, and because
- gets() 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 fgets() instead.
- It is not advisable to mix calls to input functions from the stdio
- library with low-level calls to read(2) for the file descriptor associ‐
- ated with the input stream; the results will be undefined and very
- probably not what you want.
- SEE ALSO
- 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)
- COLOPHON
- This page is part of release 3.35 of the Linux man-pages project. A
- description of the project, and information about reporting bugs, can
- be found at http://man7.org/linux/man-pages/.
- GNU 2011-09-28 GETS(3)
|