HP-UX Reference (11i v1 05/09) - 3 Library Functions A-M (vol 6)
g
gets(3S) gets(3S)
NAME
gets(), fgets() - get a string from a stream
SYNOPSIS
#include <stdio.h>
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
Obsolescent Interface
char *fgets_unlocked(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 new-line character is read or an end-of-file condition is encountered. The new-line
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, a new-line character is read and transferred to s, or an end-of-file condition is encoun-
tered. The string is then terminated with a null character.
Obsolescent Interface
fgets_unlocked()
gets a string from a stream.
APPLICATION USAGE
After
gets() or fgets() is applied to a stream, the stream becomes byte-oriented (see orientation(5)).
RETURN VALUE
Upon successful completion,
fgets(), fgets_unlocked()
, and gets() return s. If the stream is at
end-of-file, the end-of-file indicator for the stream is set and a null pointer is returned. If a read error
occurs, the error indicator for the stream is set,
errno is set to indicate the error, and a null pointer is
returned.
ferror() and feof() can be used to distinguish between an error condition and an end-of-file condi-
tion.
ERRORS
fgets(), fgets_unlocked()
, and gets() fail if data needs to be read into the stream’s buffer, and:
[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 terminated due to the receipt of a signal, and either no data
was transferred or the implementation does not report partial transfer for this file.
[EIO] The process is a member of a background process and is attempting to read from its
controlling terminal, and either the process is ignoring or blocking the
SIGTTIN sig-
nal or the process group of the process is orphaned.
Additional errno values can be set by the underlying read() function (see read(2)).
WARNINGS
fgets_unlocked() is an obsolescent interface supported only for compatibility with existing DCE
applications. New multithreaded applications should use
fgets().
SEE ALSO
ferror(3S), flockfile(3S), fopen(3S), fread(3S), getc(3S), puts(3S), scanf(3S), orientation(5), thread_safety(5).
STANDARDS CONFORMANCE
gets(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C
fgets(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C
HP-UX 11i Version 1: September 2005 − 1 − Hewlett-Packard Company Section 3−−377