Provided by: manpages-dev_6.7-2_all bug

NAME

       gets - get a string from standard input (DEPRECATED)

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #include <stdio.h>

       [[deprecated]] char *gets(char *s);

DESCRIPTION

       Never use this function.

       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).

RETURN VALUE

       gets()  returns  s  on  success,  and  NULL  on  error or when end of file occurs while no
       characters have been read.  However, given the lack of buffer overrun checking, there  can
       be no guarantees that the function will even return.

ATTRIBUTES

       For an explanation of the terms used in this section, see attributes(7).

       ┌───────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │InterfaceAttributeValue   │
       ├───────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │gets()                                                         │ Thread safety │ MT-Safe │
       └───────────────────────────────────────────────────────────────┴───────────────┴─────────┘

STANDARDS

       POSIX.1-2008.

HISTORY

       C89, POSIX.1-2001.

       LSB  deprecates  gets().   POSIX.1-2008  marks  gets()  obsolescent.   ISO C11 removes the
       specification of gets() from the C language, and since  glibc  2.16,  glibc  header  files
       don't expose the function declaration if the _ISOC11_SOURCE feature test macro is defined.

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.

       For more information,  see  CWE-242  (aka  "Use  of  Inherently  Dangerous  Function")  at
       http://cwe.mitre.org/data/definitions/242.html

SEE ALSO

       read(2),   write(2),   ferror(3),  fgetc(3),  fgets(3),  fgetwc(3),  fgetws(3),  fopen(3),
       fread(3),   fseek(3),   getline(3),   getwchar(3),    puts(3),    scanf(3),    ungetwc(3),
       unlocked_stdio(3), feature_test_macros(7)