Copy bytes from one buffer to another
Synopsis:
#include <string.h>
void* memcpy( void* dst,
const void* src,
size_t length );
Arguments:
- dest
- A pointer to where you want the function to copy the data.
- src
- A pointer to the buffer that you want to copy data from.
- length
- The number of bytes to copy.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The memcpy() function copies length bytes from the
buffer pointed to by src into the buffer pointed to by
dst.
Note:
Copying overlapping buffers isn't guaranteed to work; use
memmove() to
to copy buffers that overlap.
Returns:
A pointer to the destination buffer (that is, the value of dst).
Examples:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main( void )
{
char buffer[80];
memcpy( buffer, "Hello", 5 );
buffer[5] = '\0';
printf( "%s\n", buffer );
return EXIT_SUCCESS;
}
Environment variables:
- LIBC_STRINGS
- On ARMv7 targets, you can use this environment variable to select the implementation for this function.
The value is one of the following:
- cortex_a9 — optimized for the ARM Cortex-A9 processor;
assumes that no unaligned access is supported.
- cortex_a9_aligned — optimized for ARM Cortex-A9; requires that unaligned memory access
be enabled on the platform.
If memory access is misaligned, this implementation falls back to the NEON version.
- cortex_a9_neon — optimized for ARM Cortex-A9 using NEON.
- generic — the default.
- krait — optimized for the Qualcomm Krait CPU.
- krait_neon — optimized for Qualcomm Krait using NEON.
Processes that register ISRs shouldn't use the NEON versions.
Classification:
ANSI,
POSIX 1003.1
Safety: |
|
Cancellation point |
No |
Interrupt handler |
Yes |
Signal handler |
Yes |
Thread |
Yes |