Set memory to a given value
Synopsis:
#include <string.h>
void* memset( void* dst,
int c,
size_t length );
Arguments:
- dst
- A pointer to the memory that you want to set.
- c
- The value that you want to store in each byte.
- length
- The number of bytes to set.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The memset() function fills length bytes starting at
dst with the value c.
Note:
The compiler might optimize out calls to
memset if it appears that the
memory isn't used again in the calling function.
For a secure routine that forces the memory to be set, call
memset_s().
Returns:
A pointer to the destination buffer (that is, the value of dst).
Examples:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char buffer[80];
memset( buffer, '=', 80 );
buffer[79] = '\0';
puts( 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 |