### 4.3 `dprintf`, `vdprintf`—print to a file descriptor

Synopsis

         #include <stdio.h>
         #include <stdarg.h>
         int dprintf(int fd, const char *format, ...);
         int vdprintf(int fd, const char *format, va_list ap);
         int _dprintf_r(struct _reent *ptr, int fd,
             const char *format, ...);
         int _vdprintf_r(struct _reent *ptr, int fd,
             const char *format, va_list ap);

Description
`dprintf` and `vdprintf` allow printing a format, similarly to `printf`, but write to a file descriptor instead of to a `FILE` stream.

The functions `_dprintf_r` and `_vdprintf_r` are simply reentrant versions of the functions above.

Returns
The return value and errors are exactly as for `write`, except that `errno` may also be set to `ENOMEM` if the heap is exhausted.

Portability
This function is originally a GNU extension in glibc and is not portable.

Supporting OS subroutines required: `sbrk`, `write`.