### 5.59 `siprintf`, `fiprintf`, `iprintf`, `sniprintf`, `asiprintf`, `asniprintf`—format output (integer only) ¶

Synopsis

    #include <stdio.h>

    int iprintf(const char *format, ...);
    int fiprintf(FILE *fd, const char *format , ...);
    int siprintf(char *str, const char *format, ...);
    int sniprintf(char *str, size_t size, const char *format,
        ...);
    int asiprintf(char **strp, const char *format, ...);
    char *asniprintf(char *str, size_t *size,
        const char *format, ...);

    int _iprintf_r(struct _reent *ptr, const char *format, ...);
    int _fiprintf_r(struct _reent *ptr, FILE *fd,
        const char *format, ...);
    int _siprintf_r(struct _reent *ptr, char *str,
        const char *format, ...);
    int _sniprintf_r(struct _reent *ptr, char *str, size_t size,
        const char *format, ...);
    int _asiprintf_r(struct _reent *ptr, char **strp,
        const char *format, ...);
    char *_asniprintf_r(struct _reent *ptr, char *str,
        size_t *size, const char *format, ...);

Description
`iprintf`, `fiprintf`, `siprintf`, `sniprintf`, `asiprintf`, and `asniprintf` are the same as `printf`, `fprintf`, `sprintf`, `snprintf`, `asprintf`, and `asnprintf`, respectively, except that they restrict usage to non-floating-point format specifiers.

`_iprintf_r`, `_fiprintf_r`, `_asiprintf_r`, `_siprintf_r`, `_sniprintf_r`, `_asniprintf_r` are simply reentrant versions of the functions above.

Returns
Similar to `printf`, `fprintf`, `sprintf`, `snprintf`, `asprintf`, and `asnprintf`.

Portability
`iprintf`, `fiprintf`, `siprintf`, `sniprintf`, `asiprintf`, and `asniprintf` are newlib extensions.

Supporting OS subroutines required: `close`, `fstat`, `isatty`, `lseek`, `read`, `sbrk`, `write`.