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).