PUTC(3)

NAME
fputc, putc, putchar, putc_unlocked, putchar_unlocked, putw - output a character or word to a stream

SYNOPSIS
#include <stdio.h>
int
fputc(int c, FILE *stream);
int
putc(int c, FILE *stream);
int
putchar(int c);
int
putc_unlocked(int c, FILE *stream);
int
putchar_unlocked(int c);
int
putw(int w, FILE *stream);

DESCRIPTION
The fputc() function writes the character c (converted to an unsigned char) to the output stream pointed to by stream.

putc() acts essentially identically to fputc(), but is a macro that expands in-line. It may evaluate stream more than once, so arguments given to putc() should not be expressions with potential side effects.

putchar() is identical to putc() with an output stream of stdout.

The putc_unlocked() and putchar_unlocked() functions perform the same action, but do not obtain the stream lock. They require that the stream first be locked with flockfile(3) for thread safe operation.

The putw() function writes the specified int w to the named output stream.

RETURN VALUES
The functions fputc(), putc(), and putchar() return the character written. If an error occurs, the value EOF is returned and the global variable errno is set to indicate the error. The putw() function returns 0 on success; EOF is returned if a write error occurs, or if an attempt is made to write a read-only stream. The global variable errno may be set to indicate the error.

ERRORS
The function putw() may also fail and set errno for any of the errors specified for the routines write(2) or realloc(3).

SEE ALSO
ferror(3), flockfile(3), fopen(3), getc(3), putwc(3), stdio(3)

STANDARDS
The functions fputc(), putc(), and putchar(), conform to ansiC. The putc_unlocked() and putchar_unlocked() functions conform to p1003.1-2024.

HISTORY
The putc() and putw() functions first appeared in AT&T UNIX; putchar() in AT&T UNIX; and fputc() in AT&T UNIX. The putc_unlocked() and putchar_unlocked() functions have been available since OpenBSD 2.5.

BUGS
Since the size and byte order of an int may vary from one machine to another, putw() is not recommended for portable applications.