[kservice] Update the rt_strnlen function.

This commit is contained in:
armink 2019-03-09 15:46:56 +08:00
parent 7f3f8d8352
commit b2c338970f
2 changed files with 5 additions and 1 deletions

View File

@ -516,6 +516,7 @@ void *rt_memcpy(void *dest, const void *src, rt_ubase_t n);
rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count); rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count);
rt_int32_t rt_strcmp(const char *cs, const char *ct); rt_int32_t rt_strcmp(const char *cs, const char *ct);
rt_size_t rt_strlen(const char *src); rt_size_t rt_strlen(const char *src);
rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen);
char *rt_strdup(const char *s); char *rt_strdup(const char *s);
#if defined(__CC_ARM) || defined(__CLANG_ARM) #if defined(__CC_ARM) || defined(__CLANG_ARM)
/* leak strdup interface */ /* leak strdup interface */

View File

@ -461,6 +461,7 @@ rt_int32_t rt_strcmp(const char *cs, const char *ct)
return (*cs - *ct); return (*cs - *ct);
} }
RTM_EXPORT(rt_strcmp); RTM_EXPORT(rt_strcmp);
/** /**
* The strnlen() function returns the number of characters in the * The strnlen() function returns the number of characters in the
* string pointed to by s, excluding the terminating null byte ('\0'), * string pointed to by s, excluding the terminating null byte ('\0'),
@ -476,11 +477,13 @@ rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen)
{ {
const char *sc; const char *sc;
for (sc = s; *sc != '\0' && sc - s < (int)maxlen; ++sc) /* nothing */ for (sc = s; *sc != '\0' && (rt_ubase_t)(sc - s) < maxlen; ++sc) /* nothing */
; ;
return sc - s; return sc - s;
} }
RTM_EXPORT(rt_strnlen);
/** /**
* This function will return the length of a string, which terminate will * This function will return the length of a string, which terminate will
* null character. * null character.