os_kernel_lab/labcodes_answer/lab8_result/kern/libs/string.c
2014-08-20 15:42:20 +08:00

27 lines
567 B
C

#include <string.h>
#include <kmalloc.h>
char *
strdup(const char *src) {
char *dst;
size_t len = strlen(src);
if ((dst = kmalloc(len + 1)) != NULL) {
memcpy(dst, src, len);
dst[len] = '\0';
}
return dst;
}
char *
stradd(const char *src1, const char *src2) {
char *ret, *dst;
size_t len1 = strlen(src1), len2 = strlen(src2);
if ((ret = dst = kmalloc(len1 + len2 + 1)) != NULL) {
memcpy(dst, src1, len1), dst += len1;
memcpy(dst, src2, len2), dst += len2;
*dst = '\0';
}
return ret;
}