HP-UX Reference (11i v2 04/09) - 3 Library Functions A-M (vol 6)
g
gets(3S) gets(3S)
NAME
gets(), fgets(), fgets_unlocked() - 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
encountered. 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 con-
trolling terminal, and either the process is ignoring or blocking the SIGTTIN signal 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
Section 3−−432 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: September 2004