mirror of https://github.com/mkerrisk/man-pages
70 lines
1.5 KiB
Groff
70 lines
1.5 KiB
Groff
.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
|
|
.\" Distributed under GPL
|
|
.\" based on glibc infopages
|
|
.\"
|
|
.\" aeb, 2003, polished a little
|
|
.TH MEMPCPY 3 2003-11-11 "GNU" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
mempcpy, wmempcpy \- copy memory area
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #define _GNU_SOURCE
|
|
.br
|
|
.B #include <string.h>
|
|
.sp
|
|
.BI "void *mempcpy(void *" dest ", const void *" src ", size_t " n );
|
|
.sp
|
|
.B #define _GNU_SOURCE
|
|
.br
|
|
.B #include <wchar.h>
|
|
.sp
|
|
.BI "wchar_t *wmempcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n );
|
|
.fi
|
|
.SH DESCRIPTION
|
|
The
|
|
.BR mempcpy ()
|
|
function is nearly identical to the
|
|
.BR memcpy (3)
|
|
function.
|
|
It copies
|
|
.I n
|
|
bytes from the object beginning at
|
|
.I src
|
|
into the object pointed to by
|
|
.IR dest .
|
|
But instead of returning the value of
|
|
.I dest
|
|
it returns a pointer to the byte following the last written byte.
|
|
.PP
|
|
This function is useful in situations where a number of objects
|
|
shall be copied to consecutive memory positions.
|
|
.PP
|
|
The
|
|
.BR wmempcpy ()
|
|
function is identical but takes
|
|
.I wchar_t
|
|
type arguments and copies
|
|
.I n
|
|
wide characters.
|
|
.SH "RETURN VALUE"
|
|
\fIdest\fP + \fIn\fP.
|
|
.SH "CONFORMING TO"
|
|
This function is a GNU extension.
|
|
.SH "EXAMPLE"
|
|
.nf
|
|
void *
|
|
combine(void *o1, size_t s1, void *o2, size_t s2)
|
|
{
|
|
void *result = malloc(s1 + s2);
|
|
if (result != NULL)
|
|
mempcpy(mempcpy(result, o1, s1), o2, s2);
|
|
return result;
|
|
}
|
|
.fi
|
|
.SH "SEE ALSO"
|
|
.BR memccpy (3),
|
|
.BR memcpy (3),
|
|
.BR memmove (3),
|
|
.BR wmemcpy (3),
|
|
.BR feature_test_macros (7)
|