dprintf, vdprintf – linux man page

August 27th, 2009 | Tags: , ,

dprintf, vdprintf – print to a file descriptor

USAGE
       #define _GNU_SOURCE
       #include <stdio.h>

       int dprintf(int fd, const char *format, ...);

       int vdprintf(int fd, const char *format, va_list ap);

DESCRIPTION
       The functions dprintf() and vdprintf() (as found in the glibc2 library)
       are exact analogues of fprintf() and vfprintf(), except that they  out-
       put to a file descriptor fd instead of to a given stream.

NOTES
       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 func-
       tion in programs intended to be portable.

       A better name would have been fdprintf().

CONFORMING TO
       These functions are GNU extensions.

SEE ALSO
       printf(3)

Comments are closed.