dprintf, vdprintf — print to a file descriptor
#define _GNU_SOURCE #include <stdio.h>
int
dprintf( |
int | fd, |
const char * | format, | |
...) ; |
int
vdprintf( |
int | fd, |
const char * | format, | |
va_list | ap) ; |
The functions dprintf
() and
vdprintf
() (as found in the
glibc2 library) are exact analogues of fprintf(3) and vfprintf(3), except that
they output to a file descriptor fd
instead of to a given
stream.
These functions are GNU extensions, not in C or POSIX.
Clearly, the names were badly chosen. Many systems (like
MacOS) have incompatible functions called dprintf
(), usually some debugging version
of printf(3), perhaps with a
prototype like
void dprintf
(int level
,const char *format
,...
);
where the first parameter is a debugging level (and output
is to stderr
). Moreover,
dprintf
() (or DPRINTF
) is also a popular macro name for a
debugging printf. So, probably, it is better to avoid this
function in programs intended to be portable.
A better name would have been fdprintf(3).
printf(3), feature_test_macros(7)
|