.\" Copyright (C) 2016 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.TH BSWAP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
bswap_16, bswap_32, bswap_64 \- reverse order of bytes
.SH SYNOPSIS
.nf
.B #include <byteswap.h>
.PP
.BI bswap_16( x );
.BI bswap_32( x );
.BI bswap_64( x );
.fi
.SH DESCRIPTION
These macros return a value in which the order of the bytes
in their 2-, 4-, or 8-byte arguments is reversed.
.SH RETURN VALUE
These macros return the value of their argument with the bytes reversed.
.SH ERRORS
These macros always succeed.
.SH CONFORMING TO
These macros are GNU extensions.
.SH EXAMPLES
The program below swaps the bytes of the 8-byte integer supplied as
its command-line argument.
The following shell session demonstrates the use of the program:
.PP
.in +4n
.EX
$ \fB./a.out 0x0123456789abcdef\fP
0x123456789abcdef ==> 0xefcdab8967452301
.EE
.in
.SS Program source
\&
.EX
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>
#include <byteswap.h>

int
main(int argc, char *argv[])
{
    uint64_t x;

    if (argc != 2) {
        fprintf(stderr, "Usage: %s <num>\en", argv[0]);
        exit(EXIT_FAILURE);
    }

    x = strtoull(argv[1], NULL, 0);
    printf("%#" PRIx64 " ==> %#" PRIx64 "\en", x, bswap_64(x));

    exit(EXIT_SUCCESS);
}
.EE
.SH SEE ALSO
.BR byteorder (3),
.BR endian (3)
