Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ferror(3S)

fopen(3S)

fread(3S)

getc(3S)

scanf(3S)

stdio(3S)

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).

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026