INTTYPES(3) Library Functions Manual INTTYPES(3)
NAME
inttypesstandard fixed-size integer types
SYNOPSIS
#include <inttypes.h>
DESCRIPTION
The <inttypes.h> header describes a set of format specifier macros aimed to increase portability both within and across operating systems. It includes the <stdint.h> header and extends it with additional facilities.
 
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 I/O function such as printf(3). Each macro contains an identifier (PRI or SCN), a conversion specifier, and a possible length modifier.
 
The length modifier follows the integer types described in stdint(3):
int8_t
uint8_t
int16_t
uint16_t
int32_t
uint32_t
int64_t
uint64_t
int_least8_t
uint_least8_t
int_least16_t
uint_least16_t
int_least32_t
uint_least32_t
int_least64_t
uint_least64_t
int_fast8_t
uint_fast8_t
int_fast16_t
uint_fast16_t
int_fast32_t
uint_fast32_t
int_fast64_t
uint_fast64_t
intmax_t
uintmax_t
intptr_t
uintptr_t
 
The following format specifiers are defined for the fprintf(3) and fscanf(3) families, respectively:
PRI?8
SCN?8
PRI?16
SCN?16
PRI?32
SCN?32
PRI?64
SCN?64
PRI?LEAST8
SCN?LEAST8
PRI?LEAST16
SCN?LEAST16
PRI?LEAST32
SCN?LEAST32
PRI?LEAST64
SCN?LEAST64
PRI?FAST8
SCN?FAST8
PRI?FAST16
SCN?FAST16
PRI?FAST32
SCN?FAST32
PRI?FAST64
SCN?FAST64
PRI?MAX
SCN?MAX
PRI?PTR
SCN?PTR
 
The available conversion specifiers, “?” in above, are d and i for signed integers and o, u, x, and X for unsigned integers. The X is not available for the fscanf(3) family. Without the length modifier these would correspond with %d, %i, %o, %u, %x, and %X, respectively.
EXAMPLES
The following example demonstrates typical usage:
uint64_t i = 123; ... (void)printf("i = %"PRIu64"\n", i);
SEE ALSO
STANDARDS
The <inttypes.h> header conforms to ISO/IEC 9899:1999 (“ISO C99”) and IEEE Std 1003.1-2001 (“POSIX.1”).
HISTORY
The <inttypes.h> header was first introduced in NetBSD 1.6.