Next: , Previous: , Up: Stdio   [Contents][Index]


4.45 putc—write a character (macro)

Synopsis

#include <stdio.h>
int putc(int ch, FILE *fp);

#include <stdio.h>
int _putc_r(struct _reent *ptr, int ch, FILE *fp);

Description
putc is a macro, defined in stdio.h. putc writes the argument ch to the file or stream identified by fp, after converting it from an int to an unsigned char.

If the file was opened with append mode (or if the stream cannot support positioning), then the new character goes at the end of the file or stream. Otherwise, the new character is written at the current value of the position indicator, and the position indicator advances by one.

For a subroutine version of this macro, see fputc.

The _putc_r function is simply the reentrant version of putc that takes an additional reentrant structure argument: ptr.


Returns
If successful, putc returns its argument ch. If an error intervenes, the result is EOF. You can use ‘ferror(fp)’ to query for errors.


Portability
ANSI C requires putc; it suggests, but does not require, that putc be implemented as a macro. The standard explicitly permits macro implementations of putc to use the fp argument more than once; therefore, in a portable program, you should not use an expression with side effects as this argument.

Supporting OS subroutines required: close, fstat, isatty, lseek, read, sbrk, write.