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