logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface

Application Usage

       Reading a line that overflows the array pointed to by s results in undefined behavior. The use of fgets()
       is recommended.

       Since the user cannot specify the length of the  buffer  passed  to  gets(),  use  of  this  function  is
       discouraged. The length of the string read is unlimited. It is possible to overflow this buffer in such a
       way as to cause applications to fail, or possible system security violations.

       Applications should use the fgets() function instead of the obsolescent gets() function.

Description

       The  functionality  described  on  this  reference  page is aligned with the ISO C standard. Any conflict
       between the requirements described  here  and  the  ISO C  standard  is  unintentional.  This  volume  of
       POSIX.1‐2017 defers to the ISO C standard.

       The  gets() function shall read bytes from the standard input stream, stdin, into the array pointed to by
       s, until a <newline> is read or an end-of-file condition is encountered. Any <newline> shall be discarded
       and a null byte shall be placed immediately after the last byte read into the array.

       The gets() function may mark the last data access timestamp  of  the  file  associated  with  stream  for
       update.  The  last  data access timestamp shall be marked for update by the first successful execution of
       fgetc(), fgets(), fread(), fscanf(), getc(), getchar(), getdelim(), getline(), gets(), or  scanf()  using
       stream that returns data not supplied by a prior call to ungetc().

Errors

       Refer to fgetc().

       Thefollowingsectionsareinformative.

Examples

       None.

Future Directions

       The gets() function may be removed in a future version.

Name

       gets — get a string from a stdin stream

Prolog

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

Rationale

       The standard developers decided to mark the gets() function as obsolescent even though it is in the ISO C
       standard due to the possibility of buffer overflow.

Return Value

       Upon  successful  completion, gets() shall return s.  If the end-of-file indicator for the stream is set,
       or if the stream is at end-of-file, the end-of-file indicator for the stream  shall  be  set  and  gets()
       shall  return  a  null  pointer. If a read error occurs, the error indicator for the stream shall be set,
       gets() shall return a null pointer, and set errno to indicate the error.

See Also

Section2.5, StandardI/OStreams, feof(), ferror(), fgets()

       The Base Definitions volume of POSIX.1‐2017, <stdio.h>

Synopsis

       #include <stdio.h>

       char *gets(char *s);

See Also