.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" Distributed under GPL .\" %%%LICENSE_END .\" .\" Heavily based on glibc infopages, copyright Free Software Foundation .\" .\" aeb, 2003, polished a little .TH MEMPCPY 3 2014-03-18 "GNU" "Linux Programmer's Manual" .SH NAME mempcpy, wmempcpy \- copy memory area .SH SYNOPSIS .nf .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" .br .B #include .sp .BI "void *mempcpy(void *" dest ", const void *" src ", size_t " n ); .sp .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" .br .B #include .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 .I dest + .IR n . .SH VERSIONS .BR mempcpy () first appeared in glibc in version 2.1. .SH ATTRIBUTES .SS Multithreading (see pthreads(7)) The .BR mempcpy () and .BR wmempcpy () functions are thread-safe. .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) .SH COLOPHON This page is part of release 3.74 of the Linux .I man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%http://www.kernel.org/doc/man\-pages/.