Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\" $NetBSD: inttypes.3,v 1.2 2010/05/14 02:45:27 joerg Exp $
.\"
.\" Copyright (c) 2010 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Jukka Ruohonen.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd March 21, 2010
.Dt INTTYPES 3
.Os
.Sh NAME
.Nm inttypes
.Nd standard fixed-size integer types
.Sh SYNOPSIS
.In inttypes.h
.Sh DESCRIPTION
The
.In inttypes.h
header describes a set of format specifier macros aimed to increase
portability both within and across operating systems.
It includes the
.In stdint.h
header and extends it with additional facilities.
.Pp
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.
.Pp
The length modifier follows the integer types described in
.Xr stdint 3 :
.Bl -column -offset indent \
"PRIdLEAST64                " \
"PRIdLEAST64                "
.It Em int8_t Ta Em uint8_t
.It Em int16_t Ta Em uint16_t
.It Em int32_t Ta Em uint32_t
.It Em int64_t Ta Em uint64_t
.It Em int_least8_t Ta Em uint_least8_t
.It Em int_least16_t Ta Em uint_least16_t
.It Em int_least32_t Ta Em uint_least32_t
.It Em int_least64_t Ta Em uint_least64_t
.It Em int_fast8_t Ta Em uint_fast8_t
.It Em int_fast16_t Ta Em uint_fast16_t
.It Em int_fast32_t Ta Em uint_fast32_t
.It Em int_fast64_t Ta Em uint_fast64_t
.It Em intmax_t Ta Em uintmax_t
.It Em intptr_t Ta Em uintptr_t
.El
.Pp
The following format specifiers are defined for the
.Xr fprintf 3
and
.Xr fscanf 3
families, respectively:
.Bl -column -offset indent \
"PRIdLEAST64                " \
"PRIdLEAST64                "
.It Li PRI?8 Ta Li SCN?8
.It Li PRI?16 Ta Li SCN?16
.It Li PRI?32 Ta Li SCN?32
.It Li PRI?64 Ta Li SCN?64
.It Li PRI?LEAST8 Ta Li SCN?LEAST8
.It Li PRI?LEAST16 Ta Li SCN?LEAST16
.It Li PRI?LEAST32 Ta Li SCN?LEAST32
.It Li PRI?LEAST64 Ta Li SCN?LEAST64
.It Li PRI?FAST8 Ta Li SCN?FAST8
.It Li PRI?FAST16 Ta Li SCN?FAST16
.It Li PRI?FAST32 Ta Li SCN?FAST32
.It Li PRI?FAST64 Ta Li SCN?FAST64
.It Li PRI?MAX Ta Li SCN?MAX
.It Li PRI?PTR Ta Li SCN?PTR
.El
.Pp
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:
.Bd -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
.In inttypes.h
header conforms to
.St -isoC-99
and
.St -p1003.1-2001 .
.Sh HISTORY
The
.In inttypes.h
header was first introduced in
.Nx 1.6 .