1*2fe8fb19SBen Gras.\" $NetBSD: putc.3,v 1.12 2010/05/06 09:01:34 jruoho Exp $ 2*2fe8fb19SBen Gras.\" 3*2fe8fb19SBen Gras.\" Copyright (c) 1990, 1991, 1993 4*2fe8fb19SBen Gras.\" The Regents of the University of California. All rights reserved. 5*2fe8fb19SBen Gras.\" 6*2fe8fb19SBen Gras.\" This code is derived from software contributed to Berkeley by 7*2fe8fb19SBen Gras.\" Chris Torek and the American National Standards Committee X3, 8*2fe8fb19SBen Gras.\" on Information Processing Systems. 9*2fe8fb19SBen Gras.\" 10*2fe8fb19SBen Gras.\" Redistribution and use in source and binary forms, with or without 11*2fe8fb19SBen Gras.\" modification, are permitted provided that the following conditions 12*2fe8fb19SBen Gras.\" are met: 13*2fe8fb19SBen Gras.\" 1. Redistributions of source code must retain the above copyright 14*2fe8fb19SBen Gras.\" notice, this list of conditions and the following disclaimer. 15*2fe8fb19SBen Gras.\" 2. Redistributions in binary form must reproduce the above copyright 16*2fe8fb19SBen Gras.\" notice, this list of conditions and the following disclaimer in the 17*2fe8fb19SBen Gras.\" documentation and/or other materials provided with the distribution. 18*2fe8fb19SBen Gras.\" 3. Neither the name of the University nor the names of its contributors 19*2fe8fb19SBen Gras.\" may be used to endorse or promote products derived from this software 20*2fe8fb19SBen Gras.\" without specific prior written permission. 21*2fe8fb19SBen Gras.\" 22*2fe8fb19SBen Gras.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23*2fe8fb19SBen Gras.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24*2fe8fb19SBen Gras.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25*2fe8fb19SBen Gras.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26*2fe8fb19SBen Gras.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27*2fe8fb19SBen Gras.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28*2fe8fb19SBen Gras.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29*2fe8fb19SBen Gras.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*2fe8fb19SBen Gras.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31*2fe8fb19SBen Gras.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32*2fe8fb19SBen Gras.\" SUCH DAMAGE. 33*2fe8fb19SBen Gras.\" 34*2fe8fb19SBen Gras.\" @(#)putc.3 8.1 (Berkeley) 6/4/93 35*2fe8fb19SBen Gras.\" 36*2fe8fb19SBen Gras.Dd May 6, 2010 37*2fe8fb19SBen Gras.Dt PUTC 3 38*2fe8fb19SBen Gras.Os 39*2fe8fb19SBen Gras.Sh NAME 40*2fe8fb19SBen Gras.Nm fputc , 41*2fe8fb19SBen Gras.Nm putc , 42*2fe8fb19SBen Gras.Nm putchar , 43*2fe8fb19SBen Gras.Nm putc_unlocked , 44*2fe8fb19SBen Gras.Nm putchar_unlocked , 45*2fe8fb19SBen Gras.Nm putw 46*2fe8fb19SBen Gras.Nd output a character or word to a stream 47*2fe8fb19SBen Gras.Sh LIBRARY 48*2fe8fb19SBen Gras.Lb libc 49*2fe8fb19SBen Gras.Sh SYNOPSIS 50*2fe8fb19SBen Gras.In stdio.h 51*2fe8fb19SBen Gras.Ft int 52*2fe8fb19SBen Gras.Fn fputc "int c" "FILE *stream" 53*2fe8fb19SBen Gras.Ft int 54*2fe8fb19SBen Gras.Fn putc "int c" "FILE *stream" 55*2fe8fb19SBen Gras.Ft int 56*2fe8fb19SBen Gras.Fn putchar "int c" 57*2fe8fb19SBen Gras.Ft int 58*2fe8fb19SBen Gras.Fn putc_unlocked "int c" "FILE *stream" 59*2fe8fb19SBen Gras.Ft int 60*2fe8fb19SBen Gras.Fn putchar_unlocked "int c" 61*2fe8fb19SBen Gras.Ft int 62*2fe8fb19SBen Gras.Fn putw "int w" "FILE *stream" 63*2fe8fb19SBen Gras.Sh DESCRIPTION 64*2fe8fb19SBen GrasThe 65*2fe8fb19SBen Gras.Fn fputc 66*2fe8fb19SBen Grasfunction 67*2fe8fb19SBen Graswrites the character 68*2fe8fb19SBen Gras.Fa c 69*2fe8fb19SBen Gras(converted to an ``unsigned char'') 70*2fe8fb19SBen Grasto the output stream pointed to by 71*2fe8fb19SBen Gras.Fa stream . 72*2fe8fb19SBen Gras.Pp 73*2fe8fb19SBen Gras.Fn putc 74*2fe8fb19SBen Grasacts essentially identically to 75*2fe8fb19SBen Gras.Fn fputc , 76*2fe8fb19SBen Grasbut is a macro that expands in-line. 77*2fe8fb19SBen GrasIt may evaluate 78*2fe8fb19SBen Gras.Fa stream 79*2fe8fb19SBen Grasmore than once, so arguments given to 80*2fe8fb19SBen Gras.Fn putc 81*2fe8fb19SBen Grasshould not be expressions with potential side effects. 82*2fe8fb19SBen Gras.Pp 83*2fe8fb19SBen Gras.Fn putchar 84*2fe8fb19SBen Grasis identical to 85*2fe8fb19SBen Gras.Fn putc 86*2fe8fb19SBen Graswith an output stream of 87*2fe8fb19SBen Gras.Em stdout . 88*2fe8fb19SBen Gras.Pp 89*2fe8fb19SBen GrasThe 90*2fe8fb19SBen Gras.Fn putc_unlocked 91*2fe8fb19SBen Grasand 92*2fe8fb19SBen Gras.Fn putchar_unlocked 93*2fe8fb19SBen Grasfunctions provide functionality identical to that of 94*2fe8fb19SBen Gras.Fn putc 95*2fe8fb19SBen Grasand 96*2fe8fb19SBen Gras.Fn putchar , 97*2fe8fb19SBen Grasrespectively, but do not perform implicit locking of the streams they 98*2fe8fb19SBen Grasoperate on. 99*2fe8fb19SBen GrasIn multi-threaded programs they may be used 100*2fe8fb19SBen Gras.Em only 101*2fe8fb19SBen Graswithin a scope in which the stream 102*2fe8fb19SBen Grashas been successfully locked by the calling thread using either 103*2fe8fb19SBen Gras.Xr flockfile 3 104*2fe8fb19SBen Grasor 105*2fe8fb19SBen Gras.Xr ftrylockfile 3 , 106*2fe8fb19SBen Grasand may later be released using 107*2fe8fb19SBen Gras.Xr funlockfile 3 . 108*2fe8fb19SBen Gras.Pp 109*2fe8fb19SBen GrasThe 110*2fe8fb19SBen Gras.Fn putw 111*2fe8fb19SBen Grasfunction 112*2fe8fb19SBen Graswrites the specified 113*2fe8fb19SBen Gras.Em int 114*2fe8fb19SBen Grasto the named output 115*2fe8fb19SBen Gras.Fa stream . 116*2fe8fb19SBen Gras.Sh RETURN VALUES 117*2fe8fb19SBen GrasThe functions, 118*2fe8fb19SBen Gras.Fn fputc , 119*2fe8fb19SBen Gras.Fn putc 120*2fe8fb19SBen Grasand 121*2fe8fb19SBen Gras.Fn putchar 122*2fe8fb19SBen Grasreturn the character written. 123*2fe8fb19SBen GrasIf an error occurs, the value 124*2fe8fb19SBen Gras.Dv EOF 125*2fe8fb19SBen Grasis returned. 126*2fe8fb19SBen GrasThe 127*2fe8fb19SBen Gras.Fn putw 128*2fe8fb19SBen Grasfunction 129*2fe8fb19SBen Grasreturns 0 on success; 130*2fe8fb19SBen Gras.Dv EOF 131*2fe8fb19SBen Grasis returned if 132*2fe8fb19SBen Grasa write error occurs, 133*2fe8fb19SBen Grasor if an attempt is made to write a read-only stream. 134*2fe8fb19SBen Gras.Sh SEE ALSO 135*2fe8fb19SBen Gras.Xr ferror 3 , 136*2fe8fb19SBen Gras.Xr fopen 3 , 137*2fe8fb19SBen Gras.Xr getc 3 , 138*2fe8fb19SBen Gras.Xr stdio 3 139*2fe8fb19SBen Gras.Sh STANDARDS 140*2fe8fb19SBen GrasThe functions 141*2fe8fb19SBen Gras.Fn fputc , 142*2fe8fb19SBen Gras.Fn putc , 143*2fe8fb19SBen Grasand 144*2fe8fb19SBen Gras.Fn putchar , 145*2fe8fb19SBen Grasconform to 146*2fe8fb19SBen Gras.St -ansiC . 147*2fe8fb19SBen GrasThe functions 148*2fe8fb19SBen Gras.Fn putc_unlocked 149*2fe8fb19SBen Grasand 150*2fe8fb19SBen Gras.Fn putchar_unlocked 151*2fe8fb19SBen Grasconform to 152*2fe8fb19SBen Gras.St -p1003.1-96 . 153*2fe8fb19SBen Gras.Sh HISTORY 154*2fe8fb19SBen GrasThe functions 155*2fe8fb19SBen Gras.Fn putc , 156*2fe8fb19SBen Gras.Fn putchar , 157*2fe8fb19SBen Grasand 158*2fe8fb19SBen Gras.Fn putw 159*2fe8fb19SBen Grasfirst appeared in 160*2fe8fb19SBen Gras.At v6 . 161*2fe8fb19SBen GrasThe function 162*2fe8fb19SBen Gras.Fn fputc 163*2fe8fb19SBen Grasappeared in 164*2fe8fb19SBen Gras.At v7 . 165*2fe8fb19SBen Gras.Sh BUGS 166*2fe8fb19SBen GrasThe size and byte order of an 167*2fe8fb19SBen Gras.Em int 168*2fe8fb19SBen Grasvaries from one machine to another, and 169*2fe8fb19SBen Gras.Fn putw 170*2fe8fb19SBen Grasis not recommended for portable applications. 171