glenda.party
term% ls -F
term% cat index.txt
FGETC(2)                      System Calls Manual                     FGETC(2)

NAME
       fgetc, getc, getchar, fputc, putc, putchar, ungetc, fgets, gets, fputs,
       puts, fread, fwrite - Stdio input and output

SYNOPSIS
       #include <u.h>
       #include <stdio.h>

       int  fgetc(FILE *f)

       int  getc(FILE *f)

       int  getchar(void)

       int  fputc(int c, FILE *f)

       int  putc(int c, FILE *f)

       int  putchar(int c)

       int  ungetc(int c, FILE *f)

       char *fgets(char *s, int n, FILE *f)

       char *gets(char *s)

       int  fputs(char *s, FILE *f)

       int  puts(char *s)

       long fread(void *ptr, long itemsize, long nitems, FILE *stream)

       long fwrite(void *ptr, long itemsize, long nitems, FILE *stream)

DESCRIPTION
       The functions described here work on open Stdio streams (see fopen).

       Fgetc returns as an int the next unsigned char from input stream f.  If
       the  stream is at end-of-file, the end-of-file indicator for the stream
       is set and fgetc returns EOF.  If a read error occurs, the error  indi‐
       cator  for the stream is set and fgetc returns EOF.  Getc is like fgetc
       except that it is implemented as a macro.  Getchar is like getc  except
       that it always reads from stdin.

       Ungetc  pushes  character  c back onto the input stream f.  The pushed-
       back character will be returned by subsequent reads in the reverse  or‐
       der  of  their  pushing.   A  successful intervening fseek, fsetpos, or
       rewind on f discards any pushed-back characters for f.   One  character
       of  push-back  is guaranteed.  Ungetc returns the character pushed back
       (converted to unsigned char), or EOF if the operation  fails.   A  suc‐
       cessful call to ungetc clears the end-of-file indicator for the stream.
       The  file position indicator for the stream after reading or discarding
       all pushed-back characters is the same as it was before the  characters
       were pushed back.

       Fputc  writes character c (converted to unsigned char) to output stream
       f at the position indicated by the position indicator  for  the  stream
       and  advances  the indicator appropriately.  If the file cannot support
       positioning requests, or if the stream was opened with append mode, the
       character is appended to the output stream.  Fputc returns the  charac‐
       ter  written or EOF if there was a write error.  Putc is like fputc but
       is implemented as a macro.  Putchar is like putc except that it  always
       writes to stdout.

       All  other  input  takes place as if characters were read by successive
       calls to fgetc and all other output takes place as if  characters  were
       written by successive calls to fputc.

       Fgets  reads up to and including the next newline, but not past end-of-
       file or more than n-1 characters, from stream f into array s.   A  null
       character is written immediately after the last character read into the
       array (if any characters are read at all).  Fgets returns s if success‐
       ful, otherwise a null pointer.  Gets is similar to fgets except that it
       always  reads  from  stdin  and it discards the terminating newline, if
       any.  Gets does not check for overflow of the receiving array,  so  its
       use is deprecated.

       Fputs  writes the string s to  stream f, returning EOF if a write error
       occurred, otherwise a nonnegative value.  The terminating null  charac‐
       ter is not written.  Puts is the same, writing to stdout.

       Fread  reads from the named input stream at most nitems of data of size
       itemsize and the type of *ptr into a block beginning at  ptr.   It  re‐
       turns the number of items actually read.

       Fwrite  appends  to  the  named output stream at most nitems of data of
       size itemsize and the type of *ptr from a block beginning at  ptr.   It
       returns the number of items actually written.

SOURCE
       /sys/src/libstdio

SEE ALSO
       read(2), fopen(2), bio(2)

BUGS
       Stdio does not handle UTF or runes; use Bio instead.

                                                                      FGETC(2)