gets(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

gets(3c)

gets(3C)                 Standard C Library Functions                 gets(3C)

NAME
       gets, fgets - get a string from a stream
       gets_s - get a string from a stream with additional safety checks

SYNOPSIS
       #include <stdio.h>

       char *gets(char *s);


       char *fgets(char *s, int n, FILE *stream);


       #define __STDC_WANT_LIB_EXT1__ 1
       #include <stdlib.h>

       char *gets_s(char *s, rsize_t n);

DESCRIPTION
       The gets() function reads bytes from the standard input stream (see in‐
       tro(3)), stdin, into the array pointed to by s, until a newline charac‐
       ter  is  read  or  an end-of-file condition is encountered. The newline
       character is discarded and the string is terminated with a null byte.


       If the length of an input line exceeds the size of s, indeterminate be‐
       havior may result. For this reason, it  is  strongly  recommended  that
       gets() be avoided in favor of fgets().


       The fgets() function reads bytes from the stream into the array pointed
       to  by  s, until n−1 bytes are read, or a newline character is read and
       transferred to s, or  an  end-of-file  condition  is  encountered.  The
       string is then terminated with a null byte.


       The  fgets()  and  gets()  functions may mark the st_atime field of the
       file associated with stream for update.  The  st_atime  field  will  be
       marked  for  update  by  the  first  successful execution of fgetc(3C),
       fgets(), fread(3C), fscanf(3C),  getc(3C),  getchar(3C),  getdelim(3C),
       getline(3C),  gets(),  or  scanf(3C) using stream that returns data not
       supplied by a prior call to ungetc(3C) or ungetwc(3C).


       The gets_s() function is part of the bounds checking interfaces  speci‐
       fied  in  the  C11 standard, Annex K. It is similar to the gets() func‐
       tion, but with additional safety checks provided via explicit  runtime-
       constraints as defined in the C11 standard. See runtime_constraint_han‐
       dler(3C) and INCITS/ISO/IEC 9899:2011.

RETURN VALUES
       Upon success, the gets() and fgets() functions return s. If end-of-file
       is encountered and no bytes have been read, no bytes are transferred to
       s  and  a  null pointer is returned. For standard-conforming (see stan‐
       dards(7)) applications, if the end-of-file indicator for the stream  is
       set,  no  bytes  are  transferred  to  s and a null pointer is returned
       whether or not the stream is at end-of-file. If a  read  error  occurs,
       such  as  trying  to  use  these  functions on a file that has not been
       opened for reading, a null pointer is returned and the error  indicator
       for the stream is set. If end-of-file is encountered, the EOF indicator
       for the stream is set. Otherwise s is returned.


       Upon  success,  the gets_s() function returns s. If there is a runtime-
       constraint violation, or if end-of-file is  encountered  and  no  bytes
       have been read into the array, or if a read error occurs during the op‐
       eration, a null pointer is returned.

ERRORS
       Refer to fgetc(3C).


       The function gets_s() will fail if:


       EINVAL    Null pointer is passed.


       ERANGE    Size argument is not a valid value.



USAGE
       The fgets() function allows properly-written programs to safely process
       input  lines  too long to store in the result array. In general, it re‐
       quires that callers of fgets() pay attention to the presence or absence
       of a new-line character in the result array. Consider using the fgets()
       function (along with any needed processing based  on  new-line  charac‐
       ters) instead of the gets_s() function.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface  StabilityCommitted  _  MT-LevelSee  below  _
       StandardSee standards(7).



       The  gets()  and  fgets() functions can be used safely in multithreaded
       applications.


       The gets_s() function cannot be used safely in a multithreaded applica‐
       tion due to the runtime constraint handler. For more  information,  see
       the runtime_constraint_handler(3C) man page.

NOTE
       The use of gets() function is discouraged since the user cannot specify
       the  length  of  the  buffer passed to gets(). 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  viola‐
       tions.


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


       The  ISO  C99  standard Technical Corrigendum 3 (ISO/IEC 9899:1999 Cor.
       3:2007(E)), the X/Open Portability Guide Issue 7 (XPG7), and  the  IEEE
       POSIX 1003.1-2008 standard have all declared the gets() function is ob‐
       solescent and deprecated, and may be removed in future versions.


       The  ISO C11 standard (ISO/IEC 9899:2011) does not include gets(). When
       compiling with __STDC_VERSION__ >= 201112L, which specifies  C11  mode,
       then  the  <stdio.h>  header  will not provide a function prototype for
       gets().

SEE ALSO
       lseek(2),  read(2),  ferror(3C),  fgetc(3C),   fgetwc(3C),   fopen(3C),
       fopen_s(3C),   fread(3C),   getchar(3C),   getdelim(3C),   getline(3C),
       scanf(3C), scanf_s(3C),  stdio(3C),  ungetc(3C),  ungetwc(3C),  attrib‐
       utes(7), standards(7), runtime_constraint_handler(3C)

Oracle Solaris 11.4               11 Jun 2018                         gets(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3