_w_i_d_t_h An optional entry that consists of either one or more decimal
digits, or an asterisk (_****), or an asterisk followed by one or more
decimal digits and a _$$$$. It specifies the minimum field width: If
the converted value has fewer characters than the field width, it
will be padded (with space by default) on the left or right (see
the above _f_l_a_g_s description) to the field width.
_...._p_r_e_c An optional entry that consists of a period (_....) followed by either
zero or more decimal digits, or an asterisk (_****), or an asterisk
followed by one or more decimal digits and a _$$$$. It specifies the
minimum number of digits to appear for the _dddd, _iiii, _oooo, _uuuu, _xxxx, and _XXXX
conversions, the number of digits to appear after the decimal-point
character for the _bbbb, _BBBB, _eeee, _EEEE, and _ffff conversions, the maximum number
of significant digits for the _gggg and _GGGG conversions, or the maximum
number of characters to be written from a string for an _ssss
conversion. For other conversions, the behavior is undefined. If
only a period is specified, the precision is taken as zero.
_s_i_z_e An optional _hhhh, _llll (ell), _llll_llll (ell ell), or _LLLL that specifies other
than the default argument type of _iiii_nnnn_tttt for _dddd and _iiii; _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt for
_oooo, _uuuu, _xxxx, and _XXXX; pointer to _iiii_nnnn_tttt for _nnnn; and _dddd_oooo_uuuu_bbbb_llll_eeee for _bbbb, _BBBB, _eeee, _EEEE, _ffff,
_gggg, and _GGGG. If a _s_i_z_e appears other than in the following
combinations, the behavior is undefined.
_hhhh For _nnnn, the argument has type pointer to _ssss_hhhh_oooo_rrrr_tttt _iiii_nnnn_tttt; for _dddd and
_iiii, _ssss_hhhh_oooo_rrrr_tttt _iiii_nnnn_tttt; and for _oooo, _uuuu, _xxxx, and _XXXX, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt _iiii_nnnn_tttt.
(For _dddd, _iiii, _oooo, _uuuu, _xxxx, and _XXXX, the argument will have been
promoted according to the integral promotions, and its value
will be narrowed to _ssss_hhhh_oooo_rrrr_tttt or _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt before printing.)
_llll For _nnnn, the argument has type pointer to _llll_oooo_nnnn_gggg _iiii_nnnn_tttt; for _dddd and _iiii,
_llll_oooo_nnnn_gggg _iiii_nnnn_tttt; and for _oooo, _uuuu, _xxxx, and _XXXX, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg _iiii_nnnn_tttt.
_llll_llll For _nnnn, the argument has type pointer to _llll_oooo_nnnn_gggg _llll_oooo_nnnn_gggg _iiii_nnnn_tttt; for _dddd
and _iiii, _llll_oooo_nnnn_gggg _llll_oooo_nnnn_gggg _iiii_nnnn_tttt; and for _oooo, _uuuu, _xxxx, and _XXXX, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg
_llll_oooo_nnnn_gggg _iiii_nnnn_tttt.
_LLLL For _bbbb, _BBBB, _eeee, _EEEE, _ffff, _gggg, and _GGGG, the argument has type _llll_oooo_nnnn_gggg
_dddd_oooo_uuuu_bbbb_llll_eeee.
_f_m_t A conversion character (described below) that indicates the type of
conversion to be applied.
When a _w_i_d_t_h or _...._p_r_e_c includes an asterisk (_****), an _iiii_nnnn_tttt _a_r_g supplies the
width or precision. When they do not include a _$$$$, the arguments
specifying a field width, or precision, or both must appear (in that
order) before the argument (if any) to be converted. If the conversion
specification includes _p_o_s_p_$$$$, the field width and precision may include a
_$$$$. The decimal digits that precede the _$$$$ similarly specify the number of
the _a_r_g that contains the field width or precision. (In this case, _p_o_s_p_$$$$
specifies the number of the _a_r_g to convert.) A negative field width
argument is taken as a _---- flag followed by a positive field width. If the
greater than the size of the array, the array must contain a
terminating null character. (A null pointer for _a_r_g will yield
undefined results.)
_pppp The _a_r_g is taken to be a pointer to _vvvv_oooo_iiii_dddd. The value of the
pointer is converted to an implementation-defined sequence of
printable characters, which matches those read by the _%%%%_pppp
conversion of the _ssss_cccc_aaaa_nnnn_ffff function.
_nnnn The _a_r_g is taken to be a pointer to an integer into which is
written the number of characters written so far by this call to
_pppp_rrrr_iiii_nnnn_tttt_ffff, _ffff_pppp_rrrr_iiii_nnnn_tttt_ffff, _ssss_nnnn_pppp_rrrr_iiii_nnnn_tttt_ffff, or _ssss_pppp_rrrr_iiii_nnnn_tttt_ffff. No argument is
converted.
_%%%% Print a _%%%%; no argument is converted. The complete
specification must be simply _%%%%_%%%%.
If the form of the conversion specification does not match any of the
above, the results of the conversion are undefined. Similarly, the
results are undefined if there are insufficient _a_r_g_s for the format. If
the format is exhausted while _a_r_g_s remain, the excess _a_r_g_s are ignored.
If a floating-point value is the internal representation for infinity,
the output is [+_]_i_n_f, where _i_n_f is either _iiii_nnnn_ffff or _IIII_NNNN_FFFF, depending on
whether the conversion character is lowercase or uppercase. Printing of
the sign follows the rules described above.
If a floating-point value is the internal representation for ``not-a-
number,'' the output is [+_]_n_a_n_0000_x_m. Depending on the conversion
character, _n_a_n is either _nnnn_aaaa_nnnn or _NNNN_AAAA_NNNN. Additionally, _0000_x_m represents the
most significant part of the mantissa. Again depending on the conversion
character, _x will be _xxxx or _XXXX, and _m will use the letters _aaaa_bbbb_cccc_dddd_eeee_ffff or _AAAA_BBBB_CCCC_DDDD_EEEE_FFFF.
Printing of the sign follows the rules described above.
In no case does a nonexistent or small field width cause truncation of a
field; if the result of a conversion is wider than the field width, the
field is expanded to contain the conversion result. Characters generated
by _pppp_rrrr_iiii_nnnn_tttt_ffff and _ffff_pppp_rrrr_iiii_nnnn_tttt_ffff are printed as if the _pppp_uuuu_tttt_cccc routine had been called
repeatedly.
EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
To print a date and time in the form ``Sunday, July 3, 10:02,'' where
_wwww_eeee_eeee_kkkk_dddd_aaaa_yyyy and _mmmm_oooo_nnnn_tttt_hhhh are pointers to null-terminated strings:
_pppp_rrrr_iiii_nnnn_tttt_ffff, _ffff_pppp_rrrr_iiii_nnnn_tttt_ffff, _ssss_nnnn_pppp_rrrr_iiii_nnnn_tttt_ffff, and _ssss_pppp_rrrr_iiii_nnnn_tttt_ffff return the number of characters
transmitted (not counting the terminating null character for _ssss_nnnn_pppp_rrrr_iiii_nnnn_tttt_ffff and
_ssss_pppp_rrrr_iiii_nnnn_tttt_ffff), or return a negative value if an error was encountered.