Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ putchar(3s) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3S)

ferror(3S)

fopen(3S)

fread(3S)

printf(3S)

puts(3S)

setbuf(3S)



putc(3S)                                                 putc(3S)



NAME
     putc, putchar, fputc, putw - put character or word on a
     stream

SYNOPSIS
     #include <stdio.h>

     int putc (c, stream)
     int c;
     FILE *stream;

     int putchar (c)
     int c;

     int fputc (c, stream)
     int c;
     FILE *stream;

     int putw (w, stream)
     int w;
     FILE *stream;

DESCRIPTION
     putc writes the character c onto the output stream (at the
     position where the file pointer, if defined, is pointing).
     Putchar(c) is defined as macro putc (c, stdout).  putc is a
     function in the C library, and not a macro, if the _OCS
     macro is defined.  Otherwise it is a macro.

     Fputc behaves like putc, but is a function rather than a
     macro.  Fputc runs more slowly than putc, but it takes less
     space per invocation and its name can be passed as an argu-
     ment to a function.

     Putw writes the word (i.e. integer) w to the output stream
     (at the position at which the file pointer, if defined, is
     pointing).  The size of a word is the size of an integer and
     varies from machine to machine.  Putw neither assumes nor
     causes special alignment in the file.

     Output streams, with the exception of the standard error
     stream stderr, are by default buffered if the output refers
     to a file and line-buffered if the output refers to a termi-
     nal.  The standard error output stream stderr is by default
     unbuffered, but use of freopen (see fopen(3S)) will cause it
     to become buffered or line-buffered.  When an output stream
     is unbuffered, information is queued for writing on the des-
     tination file or terminal as soon as written; when it is
     buffered, many characters are saved up and written as a
     block.  When it is line-buffered, each line of output is
     queued for writing on the destination terminal as soon as
     the line is completed (that is, as soon as a new-line



Page 1                        CX/UX Programmer's Reference Manual





putc(3S)                                                 putc(3S)



     character is written or terminal input is requested).
     Setbuf(3S) or Setbuf(3S) may be used to change the stream's
     buffering strategy.

SEE ALSO
     fclose(3S), ferror(3S), fopen(3S), fread(3S), printf(3S),
     puts(3S), setbuf(3S).

DIAGNOSTICS
     On success, these functions each return the value they have
     written.  On failure, they return the constant EOF.  This
     will occur if the file stream is not open for writing or if
     the output file cannot be grown.  Because EOF is a valid
     integer, ferror(3S) should be used to detect putw errors.

BUGS
     Because it is implemented as a macro, putc treats
     incorrectly a stream argument with side effects.  In partic-
     ular, putc(c, *f++); doesn't work sensibly.  Fputc should be
     used instead.

     Because of possible differences in word length and byte ord-
     ering, files written using putw are machine-dependent, and
     may not be read using getw on a different processor.































Page 2                        CX/UX Programmer's Reference Manual



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026