mempcpy, wmempcpy - Copier une zone mémoire
Bibliothèque C standard (
libc,
-lc)
#define _GNU_SOURCE /* Consultez feature_test_macros(7) */
#include <string.h>
void *mempcpy(void dest[restrict .n], const void src[restrict .n],
size_t n);
#define _GNU_SOURCE /* Consultez feature_test_macros(7) */
#include <wchar.h>
wchar_t *wmempcpy(wchar_t dest[restrict .n],
const wchar_t src[restrict .n],
size_t n);
La fonction
mempcpy() est quasiment identique à la fonction
memcpy(3). Elle copie
n octets à partir de l'objet
commençant à
src dans l'objet pointé par
dest. Mais plutôt que de retourner la valeur de
dest,
elle retourne un pointeur sur l'octet suivant le dernier octet écrit.
Cette fonction est pratique dans les situations où plusieurs objets
doivent être copiés dans des positions consécutives en
mémoire.
La fonction
wmempcpy() est identique mais prend des arguments de type
wchar_t et copie
n caractères larges.
dest +
n.
mempcpy() a été introduite dans la glibc 2.1.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
mempcpy(), wmempcpy() |
Sécurité des threads |
MT-Safe |
Cette fonction est une extension GNU.
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;
}
memccpy(3),
memcpy(3),
memmove(3),
wmemcpy(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Frédéric Hantrais <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]