svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
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
intro(3)), stdin, into the array pointed to by s, until a newline char‐
acter 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
behavior 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
operation, 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
requires 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
characters) 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
obsolescent 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),
attributes(7), standards(7), runtime_constraint_handler(3C)
Oracle Solaris 11.4 11 Jun 2018 gets(3C)