diff options
| author | Michael Kerrisk <mtk.manpages@gmail.com> | 2016-04-21 13:07:01 +0200 |
|---|---|---|
| committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2016-07-24 21:53:46 +0200 |
| commit | 9f0b7bd6b0a1389e5bcff74952551ab49f21b462 (patch) | |
| tree | a31468c02e88515fb764e54b5fdc6bea54807b60 | |
| parent | 110039c1dae0146a427c6406a9d0d36daf6635e0 (diff) | |
| download | man-pages-9f0b7bd6b0a1389e5bcff74952551ab49f21b462.tar.gz | |
bswap.3: New page documenting bswap_16(), bswap_32(), and bswap_64()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
| -rw-r--r-- | man3/bswap.3 | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/man3/bswap.3 b/man3/bswap.3 new file mode 100644 index 0000000000..f01b28fa56 --- /dev/null +++ b/man3/bswap.3 @@ -0,0 +1,83 @@ +.\" 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 2016-04-21 "Linux" "Linux Programmer's Manual" +.SH NAME +bswap_16, bswap_32, bswap_64 \- reverse order of bytes +.SH SYNOPSIS +.nf +.B #include <byteswap.h> + +.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 EXAMPLE +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: + +.nf +.in +4n +$ \fB./a.out 0x0123456789abcdef\fP +0x123456789abcdef ==> 0xefcdab8967452301 +.in +.fi +.SS Program source +\& +.nf +#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>\\n", argv[0]); + exit(EXIT_FAILURE); + } + + x = strtoul(argv[1], NULL, 0); + printf("0x%" PRIx64 " ==> 0x%" PRIx64 "\\n", x, bswap_64(x)); + + exit(EXIT_SUCCESS); +} +.fi +.SH SEE ALSO +.BR byteorder (3), +.BR endian (3) |
