4.4BSD/usr/share/man/cat3/gets.0
FGETS(3) BSD Programmer's Manual FGETS(3)
NNAAMMEE
ffggeettss, ggeettss - get a line from a stream
SSYYNNOOPPSSIISS
##iinncclluuddee <<ssttddiioo..hh>>
_c_h_a_r _*
ffggeettss(_c_h_a_r _*_s_t_r, _s_i_z_e___t _s_i_z_e, _F_I_L_E _*_s_t_r_e_a_m);
_c_h_a_r _*
ggeettss(_c_h_a_r _*_s_t_r);
DDEESSCCRRIIPPTTIIOONN
The ffggeettss() function reads at most one less than the number of characters
specified by size from the given _s_t_r_e_a_m and stores them in the string
_s_t_r. Reading stops when a newline character is found, at end-of-file or
error. The newline, if any, is retained. In any case a `\0' character
is appended to end the string.
The ggeettss() function is equivalent to ffggeettss() with an infinite size and a
_s_t_r_e_a_m of _s_t_d_i_n, except that the newline character (if any) is not stored
in the string. It is the caller's responsibility to ensure that the in-
put line, if any, is sufficiently short to fit in the string.
RREETTUURRNN VVAALLUUEESS
Upon successful completion, ffggeettss() and ggeettss() return a pointer to the
string. If end-of-file or an error occurs before any characters are
read, they return NULL. The ffggeettss() and functions ggeettss() do not distin-
guish between end-of-file and error, and callers must use feof(3) and
ferror(3) to determine which occurred.
EERRRROORRSS
[EBADF] The given _s_t_r_e_a_m is not a readable stream.
The function ffggeettss() may also fail and set _e_r_r_n_o for any of the errors
specified for the routines fflush(3), fstat(2), read(2), or malloc(3).
The function ggeettss() may also fail and set _e_r_r_n_o for any of the errors
specified for the routine getchar(3).
SSEEEE AALLSSOO
feof(3), ferror(3), fgetline(3)
SSTTAANNDDAARRDDSS
The functions ffggeettss() and ggeettss() conform to ANSI C X3.159-1989 (``ANSI C
'').
BBUUGGSS
Since it is usually impossible to ensure that the next input line is less
than some arbitrary length, and because overflowing the input buffer is
almost invariably a security violation, programs should _N_E_V_E_R use ggeettss().
The ggeettss() function exists purely to conform to ANSI C X3.159-1989
(``ANSI C '').
4.4BSD June 4, 1993 1