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

Synopsis

    #include <stdio.h>
    #include <stdarg.h>
    int dprintf(int fd, const char *restrict format, ...);
    int vdprintf(int fd, const char *restrict format,
        va_list ap);
    int _dprintf_r(struct _reent *ptr, int fd,
        const char *restrict format, ...);
    int _vdprintf_r(struct _reent *ptr, int fd,
        const char *restrict 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`.