.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.TH WMEMMOVE 3  2021-03-22 "GNU" "Linux Programmer's Manual"
.SH NAME
wmemmove \- copy an array of wide-characters
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.PP
.BI "wchar_t *wmemmove(wchar_t *" dest ", const wchar_t *" src ", size_t " n );
.fi
.SH DESCRIPTION
The
.BR wmemmove ()
function is the wide-character equivalent of the
.BR memmove (3)
function.
It copies
.I n
wide characters from the array
starting at
.I src
to the array starting at
.IR dest .
The arrays may
overlap.
.PP
The programmer must ensure that there is room for at least
.I n
wide
characters at
.IR dest .
.SH RETURN VALUE
.BR wmemmove ()
returns
.IR dest .
.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 wmemmove ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C99.
.SH SEE ALSO
.BR memmove (3),
.BR wmemcpy (3)
