GNU/Linux |
RedHat 9.0(Shrike) |
|
![]() |
vdprintf(3) |
![]() |
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 and vfprintf, 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, 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.
printf(3)
![]() |
vdprintf(3) | ![]() |