INTTYPES(3)

INTTYPES(3) | Library Functions Manual | INTTYPES(3)

# NAME

inttypes — standard 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

printf(3), scanf(3), stdint(3)

# 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.

March 21, 2010 | NetBSD 7.1