#include <libc.h>
void* memccpy(void *s1, void *s2, int c, ulong n)
void* memchr(void *s, int c, ulong n)
int memcmp(void *s1, void *s2, ulong n)
void* memcpy(void *s1, void *s2, ulong n)
void* memmove(void *s1, void *s2, ulong n)
void* memset(void *s, int c, ulong n)
Memccpy copies bytes from memory area s2 into s1 , stopping after the first occurrence of byte c has been copied, or after n bytes have been copied, whichever comes first. It returns a pointer to the byte after the copy of c in s1 , or zero if c was not found in the first n bytes of s2 .
Memchr returns a pointer to the first occurrence of byte c in the first n bytes of memory area s, or zero if c does not occur.
Memcmp compares its arguments, looking at the first n bytes only, and returns an integer less than, equal to, or greater than 0, according as s1 is lexicographically less than, equal to, or greater than s2 . The comparison is bytewise unsigned.
Memcpy copies n bytes from memory area s2 to s1 . It returns s1 .
Memmove works like memcpy , except that it is guaranteed to work if s1 and s2 overlap.
Memset sets the first n bytes in memory area s to the value of byte c . It returns s .
If memcpy and memmove are handed a negative count, they abort.