123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- .TH FGETC 2
- .SH NAME
- fgetc, getc, getchar, fputc, putc, putchar, ungetc, fgets, gets, fputs, puts, fread, fwrite \- Stdio input and output
- .SH SYNOPSIS
- .B #include <u.h>
- .br
- .B #include <stdio.h>
- .ta \w'\fLlong 'u
- .PP
- .B
- int fgetc(FILE *f)
- .PP
- .B
- int getc(FILE *f)
- .PP
- .B
- int getchar(void)
- .PP
- .B
- int fputc(int c, FILE *f)
- .PP
- .B
- int putc(int c, FILE *f)
- .PP
- .B
- int putchar(int c)
- .PP
- .B
- int ungetc(int c, FILE *f)
- .PP
- .B
- char *fgets(char *s, int n, FILE *f)
- .PP
- .B
- char *gets(char *s)
- .PP
- .B
- int fputs(char *s, FILE *f)
- .PP
- .B
- int puts(char *s)
- .PP
- .B
- long fread(void *ptr, long itemsize, long nitems, FILE *stream)
- .PP
- .B
- long fwrite(void *ptr, long itemsize, long nitems, FILE *stream)
- .SH DESCRIPTION
- The functions described here work on open Stdio streams (see
- .IR fopen ).
- .PP
- .I Fgetc
- returns as an
- .B int
- the next
- .B unsigned
- .B char
- from input stream
- .IR f .
- If the stream is at end-of-file, the end-of-file indicator for the
- stream is set and
- .I fgetc
- returns
- .BR EOF .
- If a read error occurs, the error indicator for the stream is set and
- .I fgetc
- returns
- .BR EOF .
- .I Getc
- is like
- .I fgetc
- except that it is implemented as a macro.
- .I Getchar
- is like
- .I getc
- except that it always reads from
- .BR stdin .
- .PP
- .I Ungetc
- pushes character
- .I c
- back onto the input stream
- .BR f .
- The pushed-back character will be returned by subsequent reads in
- the reverse order of their pushing.
- A successful intervening
- .IR fseek ,
- .IR fsetpos ,
- or
- .I rewind
- on
- .I f
- discards any pushed-back characters for
- .IR f .
- One character of push-back is guaranteed.
- .I Ungetc
- returns the character pushed back (converted to
- .B unsigned
- .BR char ),
- or
- .B EOF
- if the operation fails.
- A successful call to
- .I 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.
- .PP
- .I Fputc
- writes character
- .I c
- (converted to
- .B unsigned
- .BR char )
- to output stream
- .IR 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.
- .I Fputc
- returns the character written or
- .B EOF
- if there was a write error.
- .I Putc
- is like
- .IR fputc
- but is implemented as a macro.
- .I Putchar
- is like
- .I putc
- except that it always writes to
- .BR stdout .
- .PP
- All other input takes place as if characters were read by successive
- calls to
- .I fgetc
- and all other output takes place as if characters were written by
- successive calls to
- .IR fputc .
- .PP
- .I Fgets
- reads up to and including the next newline, but not past end-of-file
- or more than
- .IR n -1
- characters, from stream
- .I f
- into array
- .IR s .
- A null character is written immediately after the last character read
- into the array (if any characters are read at all).
- .I Fgets
- returns
- .I s
- if successful, otherwise a null pointer.
- .I Gets
- is similar to
- .IR fgets
- except that it always reads from
- .B stdin
- and it discards the terminating newline, if any.
- .I Gets
- does not check for overflow of the receiving array, so its use is deprecated.
- .PP
- .I Fputs
- writes the string
- .I s
- to stream
- .IR f ,
- returning
- .B EOF
- if a write error occurred, otherwise a nonnegative value.
- The terminating null character is not written.
- .I Puts
- is the same, writing to
- .BR stdout .
- .PP
- .I Fread
- reads from the named input
- .IR stream
- at most
- .I nitems
- of data of size
- .I itemsize
- and the type of
- .I *ptr
- into a block beginning at
- .IR ptr .
- It returns the number of items actually read.
- .PP
- .I Fwrite
- appends to the named output
- .I stream
- at most
- .I nitems
- of data of size
- .I itemsize
- and the type of
- .I *ptr
- from a block beginning at
- .IR ptr .
- It returns the number of items actually written.
- .SH SOURCE
- .B /sys/src/libstdio
- .SH "SEE ALSO"
- .IR read (2),
- .IR fopen (2),
- .IR bio (2)
- .SH BUGS
- Stdio does not handle
- .SM UTF
- or runes; use Bio instead.
|