Greg Hartman | 76d05dc | 2016-11-23 15:51:27 -0800 | [diff] [blame] | 1 | /* |
2 | * memccpy.c | ||||
3 | * | ||||
4 | * memccpy() | ||||
5 | */ | ||||
6 | |||||
7 | #include <stddef.h> | ||||
8 | #include <string.h> | ||||
9 | |||||
10 | void *memccpy(void *dst, const void *src, int c, size_t n) | ||||
11 | { | ||||
12 | char *q = dst; | ||||
13 | const char *p = src; | ||||
14 | char ch; | ||||
15 | |||||
16 | while (n--) { | ||||
17 | *q++ = ch = *p++; | ||||
18 | if (ch == (char)c) | ||||
19 | return q; | ||||
20 | } | ||||
21 | |||||
22 | return NULL; /* No instance of "c" found */ | ||||
23 | } |