Computer Science


GETS(3)             Linux Programmer's Manual             GETS(3)

NAME
       fgetc, fgets, getc, getchar, gets, ungetc - input of char-
       acters and strings

SYNOPSIS
       #include <stdio.h>

       int fgetc(FILE *stream);
       char *fgets(char *s, int size, FILE *stream);
       int getc(FILE *stream);
       int getchar(void);
       char *gets(char *s);
       int ungetc(int c, FILE *stream);

DESCRIPTION
       fgetc() reads the next character from stream  and  returns
       it  as  an  unsigned char cast to an int, or EOF on end of
       file or error.

       getc() is equivalent to fgetc()  except  that  it  may  be
       implemented  as  a  macro which evaluates stream more than
       once.

       getchar() is equivalent to getc(stdin).

       gets() reads a line from stdin into the buffer pointed  to
       by  s  until either a terminating newline or EOF, which it
       replaces with '\0'.  No check for buffer overrun  is  per-
       formed (see BUGS below).

       fgets()  reads  in  at  most one less than size characters
       from stream and stores them into the buffer pointed to  by
       s.  Reading stops after an EOF or a newline.  If a newline
       is read, it is stored into the buffer.  A '\0'  is  stored
       after the last character in the buffer.

       ungetc()  pushes  c back to stream, cast to unsigned char,
       where it is  available  for  subsequent  read  operations.
       Pushed  -  back  characters  will  be  returned in reverse
       order; only one pushback is guaranteed.

       Calls to the functions described here can  be  mixed  with
       each  other  and  with calls to other input functions from
       the stdio library for the same input stream.

RETURN VALUES
       fgetc(), getc() and getchar() return the character read as
       an  unsigned  char cast to an int or EOF on end of file or
       error.

       gets() and fgets() return s on success, and NULL on  error
       or  when  end of file occurs while no characters have been
       read.

       ungetc() returns c on success, or EOF on error.

CONFORMING TO
       ANSI - C, POSIX.1

BUGS
       Because it is impossible to tell without knowing the  data
       in  advance  how  many  characters  gets()  will read, and
       because gets() will continue to store characters past  the
       end  of  the buffer, it is extremely dangerous to use.  It
       has been used to break  computer  security.   Use  fgets()
       instead.

       It  is  not advisable to mix calls to input functions from
       the stdio library with low - level calls to read() for the
       file  descriptor  associated  with  the  input stream; the
       results will be undefined and very probably not  what  you
       want.

SEE ALSO
       read(2),  write(2), fopen(3), fread(3), scanf(3), puts(3),
       fseek(3), ferror(3)

GNU                       April 4, 1993                         1

Back to the index


Apply now!


Handbook

Postgraduate study options

Computer Science Blog



Please give us your feedback or ask us a question

This message is...


My feedback or question is...


My email address is...

(Only if you need a reply)

A to Z Directory | Site map | Accessibility | Copyright | Privacy | Disclaimer | Feedback on this page