*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> fgets (3)              
Title
Content
Arch
Section
 

FGETS(3)

Contents


NAME    [Toc]    [Back]

     fgets, gets -- get a line from a stream

LIBRARY    [Toc]    [Back]

     Standard C Library (libc, -lc)

SYNOPSIS    [Toc]    [Back]

     #include <stdio.h>

     char *
     fgets(char * restrict str, int size, FILE * restrict stream);

     char *
     gets(char *str);

DESCRIPTION    [Toc]    [Back]

     The fgets() function reads at most one less than the number of characters
     specified by size from the given stream and stores them in the string
     str.  Reading stops when a newline character is found, at end-of-file or
     error.  The newline, if any, is retained.	If any characters are read and
     there is no error, a `\0' character is appended to end the string.

     The gets() function is equivalent to fgets() with an infinite size and a
     stream of stdin, except that the newline character (if any) is not stored
     in the string.  It is the caller's responsibility to ensure that the
     input line, if any, is sufficiently short to fit in the string.

RETURN VALUES    [Toc]    [Back]

     Upon successful completion, fgets() and gets() return a pointer to the
     string.  If end-of-file occurs before any characters are read, they
     return NULL and the buffer contents remain unchanged.  If an error
     occurs, they return NULL and the buffer contents are indeterminate.  The
     fgets() and gets() functions do not distinguish between end-of-file and
     error, and callers must use feof(3) and ferror(3) to determine which
     occurred.

ERRORS    [Toc]    [Back]

     [EBADF]		The given stream is not a readable stream.

     The function fgets() may also fail and set errno for any of the errors
     specified for the routines fflush(3), fstat(2), read(2), or malloc(3).

     The function gets() may also fail and set errno for any of the errors
     specified for the routine getchar(3).

SECURITY CONSIDERATIONS    [Toc]    [Back]

     The gets() function cannot be used securely.  Because of its lack of
     bounds checking, and the inability for the calling program to reliably
     determine the length of the next incoming line, the use of this function
     enables malicious users to arbitrarily change a running program's functionality
 through a buffer overflow attack.  It is strongly suggested
     that the fgets() function be used in all cases.  (See the FSA.)

SEE ALSO    [Toc]    [Back]

      
      
     feof(3), ferror(3), fgetln(3), fgetws(3)

     The FreeBSD Security Architecture.  (See /usr/share/doc/{to be
     determined}.)

STANDARDS    [Toc]    [Back]

     The functions fgets() and gets() conform to ISO/IEC 9899:1999
     (``ISO C99'').


FreeBSD 5.2.1			 June 4, 1993			 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
puts OpenBSD output a line to a stream
puts FreeBSD output a line to a stream
fputs FreeBSD output a line to a stream
puts NetBSD output a line to a stream
fputs NetBSD output a line to a stream
fputs OpenBSD output a line to a stream
fgetws FreeBSD get a line of wide characters from a stream
fparseln OpenBSD return the next logical line from a stream
fparseln FreeBSD return the next logical line from a stream
fparseln NetBSD return the next logical line from a stream
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service