BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / stdio / putc.3
index 3241c2f..0e36071 100644 (file)
-.\"    @(#)putc.3      6.3 (Berkeley) 4/1/89
+.\" Copyright (c) 1990, 1991 The Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.TH PUTC 3  "April 1, 1989"
-.AT 3
-.SH NAME
-putc, putchar, fputc, putw \- put character or word on a stream
-.SH SYNOPSIS
-.B #include <stdio.h>
-.PP
-.B int putc(c, stream)
-.br
-.B char c;
-.br
-.SM
-.B FILE
-.B *stream;
-.PP
-.B int putchar(c)
-.PP
-.B int fputc(c, stream)
-.br
-.SM
-.B FILE
-.B *stream;
-.PP
-.B int putw(w, stream)
-.br
-.SM
-.B FILE
-.B *stream;
-.SH DESCRIPTION
-.I Putc
-appends the character
-.I c
+.\" This code is derived from software contributed to Berkeley by
+.\" Chris Torek and the American National Standards Committee X3,
+.\" on Information Processing Systems.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)putc.3     6.7 (Berkeley) 6/29/91
+.\"
+.Dd June 29, 1991
+.Dt PUTC 3
+.Os
+.Sh NAME
+.Nm fputc ,
+.Nm putc ,
+.Nm putchar ,
+.Nm putw
+.Nd output a character or word to a stream
+.Sh SYNOPSIS
+.Fd #include <stdio.h>
+.Ft int
+.Fn fputc "int c" "FILE *stream"
+.Ft int
+.Fn putc "int c" "FILE *stream"
+.Ft int
+.Fn putchar "int c"
+.Ft int
+.Fn putw "int w" "FILE *stream"
+.Sh DESCRIPTION
+The
+.Fn fputc
+function
+writes the character
+.Fa c
+(converted to an ``unsigned char'')
+to the output stream pointed to by
+.Fa stream .
+.Pp
+.Fn Putc
+acts essentially identically to
+.Fn fputc ,
+but is a macro that expands in-line. It may evaluate
+.Fa stream
+more than once, so arguments given to
+.Fn putc
+should not be expressions with potential side effects.
+.Pp
+.Fn Putchar
+is identical to
+.Fn putc
+with an output stream of
+.Em stdout .
+.Pp
+The
+.Fn putw
+function
+writes the specified
+.Em int
 to the named output
 to the named output
-.IR stream .
-It returns the character written.
-.PP
-.IR Putchar ( c )
-is defined as 
-.IR putc ( c ,
-.BR stdout ).
-.PP
-.I Fputc
-behaves like 
-.IR putc ,
-but is a genuine function rather than a macro.
-.PP
-.I Putw
-appends word (that is,
-.BR int )
-.I w
-to the output
-.IR stream .
-It returns the word written.
-.I Putw
-neither assumes nor causes special alignment in the file.
-.SH "SEE ALSO"
-fopen(3),
-fclose(3),
-getc(3),
-puts(3),
-printf(3),
-fread(3)
-.SH DIAGNOSTICS
-These functions return the constant
-.SM
-.B EOF
-upon error.  Since this is a good integer,
-.IR  ferror (3)
-should be used to detect 
-.I putw
-errors.
-.SH BUGS
-Because it is implemented as a macro,
-.I putc
-treats a
-.I stream
-argument with side effects improperly.  In particular
-.IP "putc(c, *f++);"
-.PP
-doesn't work sensibly.
-.PP
-Errors can occur long after the call to
-.IR putc .
+.Fa stream .
+.Sh RETURN VALUES
+The functions,
+.Fn fputc ,
+.Fn putc
+and
+.Fn putchar
+return the character written.
+If an error occurs, the value
+.Dv EOF
+is returned.
+The
+.Fn putw
+function
+returns 0 on success;
+.Dv EOF
+is returned if
+a write error occurs,
+or if an attempt is made to write a read-only stream.
+.Sh SEE ALSO
+.Xr ferror 3 ,
+.Xr fopen 3 ,
+.Xr getc 3 ,
+.Xr stdio 3
+.Sh STANDARDS
+The functions
+.Fn fputc ,
+.Fn putc ,
+and
+.Fn putchar ,
+conform to
+.St -ansiC .
+A function
+.Fn putw
+function appeared in
+.At v6 .
+.Sh BUGS
+The size and byte order of an
+.Em int
+varies from one machine to another, and
+.Fn putw
+is not recommended for portable applications.