Kernel/std: Add strdup()
This commit is contained in:
parent
531afc3d6f
commit
bcbf43e55c
@ -16,4 +16,6 @@ char* strstr(char* haystack, const char* needle);
|
||||
void* memcpy(void* dest, const void* src, size_t n);
|
||||
void* memset(void* dest, int c, size_t n);
|
||||
int memcmp(const void* a, const void* b, size_t n);
|
||||
void* memmove(void* dest, void* src, size_t n);
|
||||
void* memmove(void* dest, void* src, size_t n);
|
||||
|
||||
char* strdup(const char* src);
|
@ -1,4 +1,5 @@
|
||||
#include <string.h>
|
||||
#include "std/string.h"
|
||||
#include "std/stdlib.h"
|
||||
|
||||
size_t strlen(const char* __s)
|
||||
{
|
||||
@ -121,4 +122,12 @@ void* memmove(void* dest, void* src, size_t n)
|
||||
for (long i = 0; i < (long)n; i++) { *((char*)dest + i) = *((char*)src + i); }
|
||||
}
|
||||
return dest;
|
||||
}
|
||||
|
||||
char* strdup(const char* src)
|
||||
{
|
||||
size_t length = strlen(src);
|
||||
char* duplicated = (char*)kmalloc(length + 1);
|
||||
memcpy(duplicated, src, length + 1);
|
||||
return duplicated;
|
||||
}
|
Loading…
Reference in New Issue
Block a user