.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
.\" %%%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
.\"
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified Sat Jul 24 17:52:15 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified 2001-12-15, aeb
.TH SWAB 3  2021-03-22 "" "Linux Programmer's Manual"
.SH NAME
swab \- swap adjacent bytes
.SH SYNOPSIS
.nf
.BR "#define _XOPEN_SOURCE" "       /* See feature_test_macros(7) */"
.B #include <unistd.h>
.PP
.BI "void swab(const void *restrict " from ", void *restrict " to \
", ssize_t " n );
.fi
.SH DESCRIPTION
The
.BR swab ()
function copies
.I n
bytes from the array pointed
to by
.I from
to the array pointed to by
.IR to ,
exchanging
adjacent even and odd bytes.
This function is used to exchange data
between machines that have different low/high byte ordering.
.PP
This function does nothing when
.I n
is negative.
When
.I n
is positive and odd, it handles
.I n\-1
bytes
as above, and does something unspecified with the last byte.
(In other words,
.I n
should be even.)
.SH RETURN VALUE
The
.BR swab ()
function returns no value.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR swab ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.SH SEE ALSO
.BR bstring (3)
