#ifndef __STDIO_H__ # define __STDIO_H__ #include #include #include /* Standard input, output and error streams. */ extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; /* Make them macros (7.19.1ยง3) */ #define stdin stdin #define stdout stdout #define stderr stderr /* ** Formatted input/output functions. ** ** These functions implement most of printf(3)'s features, including: ** - Signed and unsigned integer formats (%d, %i, %o, %u, %x, %X) ** - Character, string and pointer formats (%c, %s, %p) ** - Character count and strerror() shorthand formats (%n, %m) ** - Format options (0, #, -, (space), length, precision) ** - Parameter length (hh, h, l, ll, L, z, j, t) (L: if long double is 64-bit) ** - Limiting the size of the output and still returning the whole length ** - If __printf_enable_fp() from is called: floating-point ** formats (%e, %E, %f, %F, %g, %G) (disabled by default to save space) ** ** They do not (yet?) support: ** - Hexadecimal floating-point (%a, %A) ** - Printing long double values when long double is more than 64-bit ** - Dynamic length field (*) ** - Parameter reordering ($m) ** - Thousands separators (') and locale-aware digits (I) ** - Nonstandard/old synonyms %C (%lc), %S (%ls), q (ll), and Z (z) ** ** There are extensions, namely to allow for custom conversions to be added. ** One custom conversion can be enabled with __printf_enable_fixed() from ** : a decimal fixed-point format %D which is like %d but ** with a decimal point. See for details. */ /* Formatted print to file. */ extern int fprintf(FILE * restrict __fp, char const * restrict __format, ...); /* Formatted print to stdout. */ extern int printf(char const * restrict __format, ...); /* Formatted print to string (with limited size). */ extern int snprintf(char * restrict __str, size_t __size, char const * restrict __format, ...); /* Formatted print to string (with unlimited size!). */ extern int sprintf(char * restrict __str, char const * restrict __format, ...); /* Formatted print to file (variable argument list). */ extern int vfprintf(FILE * restrict __fp, char const * restrict __format, va_list __args); /* Formatted print to stdout (variable argument list). */ extern int vprintf(char const * restrict __format, va_list __args); /* Formatted print to string (limited size, variable argument list). */ extern int vsnprintf(char * restrict __str, size_t __size, char const * restrict __format, va_list __args); /* Formatted print to string (unlimited size!, variable argument list). */ extern int vsprintf(char * restrict __str, char const * restrict __format, va_list __args); /* putx() - display char / string */ extern int putchar(int c); extern int puts(const char *s); /* Extensions. */ /* Formatted print to file descriptor. */ extern int dprintf(int __fd, char const * restrict __format, ...); /* Formatted print to file descriptor (variable argument list). */ extern int vdprintf(int __fd, char const * restrict __format, va_list __args); /* Allocating sprintf(). */ extern int asprintf(char ** restrict __str,char const * restrict __format,...); /* Allocating vsprintf(). */ extern int vasprintf(char ** restrict __str, char const * restrict __format, va_list __args); #endif /*__STDIO_H__*/