From a0721b4caa79b81e021678089fde0b8467daa1cd Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Mon, 2 Mar 2015 21:37:44 -0500 Subject: Virtual filesystem WIP! --- libc/string.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'libc/string.c') diff --git a/libc/string.c b/libc/string.c index 11d398f..290aec4 100644 --- a/libc/string.c +++ b/libc/string.c @@ -2,7 +2,7 @@ #include #include "string.h" -int strlen(const char *str) +size_t strlen(const char *str) { int len = 0; while(*str++) @@ -25,3 +25,23 @@ void* memcpy(void *dest, void *src, size_t sz) *(char*)dest++ = *(char*)src++; return dest; } + +char* strdup(const char *str) +{ + int len = strlen(str); + /* allocate room for the string and it's NULL terminator */ + char *ret = malloc(len + 1); + memcpy(ret, str, len + 1); + return ret; +} + +char* strncat(char *dest, const char *src, size_t n) +{ + /* save this for the return */ + char *d = dest; + while(*dest++); + while(n && (*dest++ = *src++)) --n; + if(*dest) + *dest = '\0'; + return d; +} -- cgit v1.1