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* memcpy(void* dest, const void* src, size_t n);
|
||||||
void* memset(void* dest, int c, size_t n);
|
void* memset(void* dest, int c, size_t n);
|
||||||
int memcmp(const void* a, const void* b, 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)
|
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); }
|
for (long i = 0; i < (long)n; i++) { *((char*)dest + i) = *((char*)src + i); }
|
||||||
}
|
}
|
||||||
return dest;
|
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