GETS(3S) SysV GETS(3S)
NAME
gets, fgets - get a string from a stream
SYNOPSIS
#include <stdio.h>
char *gets (s)
char *s;
char *fgets (s, n, stream)
char *s;
int n;
FILE *stream;
DESCRIPTION
gets reads characters from the standard input stream, stdin, into the
array pointed to by s, until a newline character is read or an end-of-
file condition is encountered. The newline character is discarded and
the string is terminated with a null character.
fgets reads characters from the stream into the array pointed to by s,
until n-1 characters 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 character.
DIAGNOSTICS
If end-of-file is encountered and no characters have been read, no
characters are transferred to s and a NULL pointer is returned. 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. Otherwise s
is returned.
ERRORS
The gets, and fgets functions fail if either the stream is unbuffered, or
the stream's buffer needed to be flushed and the function call caused an
underlying read or lseek to be invoked. In addition, the gets, or fgets,
fail if
[EAGAIN] The O_NONBLOCK flag is set for the file descriptor
underlying stream and the process would be delayed in the
read operation.
[EBADF] The file descriptor underlying stream is not a valid file
descriptor open for reading.
[EINTR] The read operation was interrupted by a signal which was
caught, and no data was transferred.
[EIO] The implementation supports job control, the process is a
member of a background process group attempting to read to
its controlling terminal, TOSTOP is set, the process is
neither ignoring nor blocking SIGTTOU and the process
group of the process is orphaned.
SEE ALSO
ferror(3S), fopen(3S), fread(3S), getc(3S), scanf(3S), stdio(3S).