diff --git a/Kernel/StdLib.cpp b/Kernel/StdLib.cpp index 33424f945a..eec8960d0a 100644 --- a/Kernel/StdLib.cpp +++ b/Kernel/StdLib.cpp @@ -102,6 +102,14 @@ size_t strlen(const char* str) return len; } +size_t strnlen(const char* str, size_t maxlen) +{ + size_t len = 0; + for (; len < maxlen && *str; str++) + len++; + return len; +} + int strcmp(const char* s1, const char* s2) { for (; *s1 == *s2; ++s1, ++s2) { diff --git a/Kernel/StdLib.h b/Kernel/StdLib.h index 2273b4e631..2eaf9797a1 100644 --- a/Kernel/StdLib.h +++ b/Kernel/StdLib.h @@ -11,6 +11,7 @@ char* strcpy(char*, const char*); char* strncpy(char*, const char*, size_t); int strcmp(char const*, const char*); size_t strlen(const char*); +size_t strnlen(const char*, size_t); void* memset(void*, int, size_t); char* strdup(const char*); int memcmp(const void*, const void*, size_t);