Greg Hartman | 76d05dc | 2016-11-23 15:51:27 -0800 | [diff] [blame^] | 1 | /* |
2 | * strlcpy.c | ||||
3 | */ | ||||
4 | |||||
5 | #include <string.h> | ||||
6 | #include <klibc/compiler.h> | ||||
7 | |||||
8 | size_t strlcpy(char *dst, const char *src, size_t size) | ||||
9 | { | ||||
10 | size_t bytes = 0; | ||||
11 | char *q = dst; | ||||
12 | const char *p = src; | ||||
13 | char ch; | ||||
14 | |||||
15 | while ((ch = *p++)) { | ||||
16 | if (bytes < size) | ||||
17 | *q++ = ch; | ||||
18 | |||||
19 | bytes++; | ||||
20 | } | ||||
21 | |||||
22 | *q = '\0'; | ||||
23 | return bytes; | ||||
24 | } |