diff options
Diffstat (limited to 'lib/libc/string/memccpy.c')
| -rw-r--r-- | lib/libc/string/memccpy.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/libc/string/memccpy.c b/lib/libc/string/memccpy.c new file mode 100644 index 00000000..29828182 --- /dev/null +++ b/lib/libc/string/memccpy.c @@ -0,0 +1,13 @@ +#include <stddef.h> + +void *memccpy(void *restrict s1, const void *restrict s2, int c, size_t n) +{ + const unsigned char *p2 = s2; + unsigned char *p1 = s1; + while (n--) { + if (*p2 == (unsigned char)c) + return p1 + 1; + *p1++ = *p2++; + } + return NULL; +} |
