This section describes functions for performing character- and line-oriented output.
These narrow stream functions are declared in the header file stdio.h and the wide stream functions in wchar.h.
int fputc (int c, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The fputc function converts the character c to type
unsigned char, and writes it to the stream stream.
EOF is returned if a write error occurs; otherwise the
character c is returned.
wint_t fputwc (wchar_t wc, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The fputwc function writes the wide character wc to the
stream stream. WEOF is returned if a write error occurs;
otherwise the character wc is returned.
int fputc_unlocked (int c, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The fputc_unlocked function is equivalent to the fputc
function except that it does not implicitly lock the stream.
wint_t fputwc_unlocked (wchar_t wc, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The fputwc_unlocked function is equivalent to the fputwc
function except that it does not implicitly lock the stream.
This function is a GNU extension.
int putc (int c, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
This is just like fputc, except that most systems implement it as
a macro, making it faster. One consequence is that it may evaluate the
stream argument more than once, which is an exception to the
general rule for macros. putc is usually the best function to
use for writing a single character.
wint_t putwc (wchar_t wc, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
This is just like fputwc, except that it can be implement as
a macro, making it faster. One consequence is that it may evaluate the
stream argument more than once, which is an exception to the
general rule for macros. putwc is usually the best function to
use for writing a single wide character.
int putc_unlocked (int c, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The putc_unlocked function is equivalent to the putc
function except that it does not implicitly lock the stream.
wint_t putwc_unlocked (wchar_t wc, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The putwc_unlocked function is equivalent to the putwc
function except that it does not implicitly lock the stream.
This function is a GNU extension.
int putchar (int c) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The putchar function is equivalent to putc with
stdout as the value of the stream argument.
wint_t putwchar (wchar_t wc) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The putwchar function is equivalent to putwc with
stdout as the value of the stream argument.
int putchar_unlocked (int c) ¶Preliminary: | MT-Unsafe race:stdout | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The putchar_unlocked function is equivalent to the putchar
function except that it does not implicitly lock the stream.
wint_t putwchar_unlocked (wchar_t wc) ¶Preliminary: | MT-Unsafe race:stdout | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The putwchar_unlocked function is equivalent to the putwchar
function except that it does not implicitly lock the stream.
This function is a GNU extension.
int fputs (const char *s, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The function fputs writes the string s to the stream
stream. The terminating null character is not written.
This function does not add a newline character, either.
It outputs only the characters in the string.
This function returns EOF if a write error occurs, and otherwise
a non-negative value.
For example:
fputs ("Are ", stdout);
fputs ("you ", stdout);
fputs ("hungry?\n", stdout);
outputs the text ‘Are you hungry?’ followed by a newline.
int fputws (const wchar_t *ws, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe corrupt lock | See POSIX Safety Concepts.
The function fputws writes the wide character string ws to
the stream stream. The terminating null character is not written.
This function does not add a newline character, either. It
outputs only the characters in the string.
This function returns WEOF if a write error occurs, and otherwise
a non-negative value.
int fputs_unlocked (const char *s, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The fputs_unlocked function is equivalent to the fputs
function except that it does not implicitly lock the stream.
This function is a GNU extension.
int fputws_unlocked (const wchar_t *ws, FILE *stream) ¶Preliminary: | MT-Safe race:stream | AS-Unsafe corrupt | AC-Unsafe corrupt | See POSIX Safety Concepts.
The fputws_unlocked function is equivalent to the fputws
function except that it does not implicitly lock the stream.
This function is a GNU extension.
int puts (const char *s) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe lock corrupt | See POSIX Safety Concepts.
The puts function writes the string s to the stream
stdout followed by a newline. The terminating null character of
the string is not written. (Note that fputs does not
write a newline as this function does.)
puts is the most convenient function for printing simple
messages. For example:
puts ("This is a message.");
outputs the text ‘This is a message.’ followed by a newline.
int putw (int w, FILE *stream) ¶Preliminary: | MT-Safe | AS-Unsafe corrupt | AC-Unsafe lock corrupt | See POSIX Safety Concepts.
This function writes the word w (that is, an int) to
stream. It is provided for compatibility with SVID, but we
recommend you use fwrite instead (see Block Input/Output).