p Each of the following macros expand to a character string literal containing the format specifier suitable for use within the format argument of a formatted .Tn I/O function such as .Xr printf 3 . Each macro contains an identifier (PRI or SCN), a conversion specifier, and a possible length modifier.
p The length modifier follows the integer types described in .Xr stdint 3 : l -column -offset indent \ "PRIdLEAST64 " \ "PRIdLEAST64 " t Em int8_t Ta Em uint8_t t Em int16_t Ta Em uint16_t t Em int32_t Ta Em uint32_t t Em int64_t Ta Em uint64_t t Em int_least8_t Ta Em uint_least8_t t Em int_least16_t Ta Em uint_least16_t t Em int_least32_t Ta Em uint_least32_t t Em int_least64_t Ta Em uint_least64_t t Em int_fast8_t Ta Em uint_fast8_t t Em int_fast16_t Ta Em uint_fast16_t t Em int_fast32_t Ta Em uint_fast32_t t Em int_fast64_t Ta Em uint_fast64_t t Em intmax_t Ta Em uintmax_t t Em intptr_t Ta Em uintptr_t .El
p The following format specifiers are defined for the .Xr fprintf 3 and .Xr fscanf 3 families, respectively: l -column -offset indent \ "PRIdLEAST64 " \ "PRIdLEAST64 " t Li PRI?8 Ta Li SCN?8 t Li PRI?16 Ta Li SCN?16 t Li PRI?32 Ta Li SCN?32 t Li PRI?64 Ta Li SCN?64 t Li PRI?LEAST8 Ta Li SCN?LEAST8 t Li PRI?LEAST16 Ta Li SCN?LEAST16 t Li PRI?LEAST32 Ta Li SCN?LEAST32 t Li PRI?LEAST64 Ta Li SCN?LEAST64 t Li PRI?FAST8 Ta Li SCN?FAST8 t Li PRI?FAST16 Ta Li SCN?FAST16 t Li PRI?FAST32 Ta Li SCN?FAST32 t Li PRI?FAST64 Ta Li SCN?FAST64 t Li PRI?MAX Ta Li SCN?MAX t Li PRI?PTR Ta Li SCN?PTR .El
p The available conversion specifiers, .Dq ? in above, are .Em d and .Em i for signed integers and .Em o , .Em u , .Em x , and .Em X for unsigned integers. The .Em X is not available for the .Xr fscanf 3 family. Without the length modifier these would correspond with .Sy %d , .Sy %i , .Sy %o , .Sy %u , .Sy %x , and .Sy %X , respectively. .Sh EXAMPLES The following example demonstrates typical usage: d -literal -offset indent uint64_t i = 123; ... (void)printf("i = %"PRIu64"\en", i); .Ed .Sh SEE ALSO .Xr printf 3 , .Xr scanf 3 , .Xr stdint 3 .Sh STANDARDS The n inttypes.h header conforms to .St -isoC-99 and .St -p1003.1-2001 . .Sh HISTORY The n inttypes.h header was first introduced in .Nx 1.6 .