1*9573673dSchristos /* Portable version of strnlen. 2*9573673dSchristos This function is in the public domain. */ 3*9573673dSchristos 4*9573673dSchristos /* 5*9573673dSchristos 6*9573673dSchristos @deftypefn Supplemental size_t strnlen (const char *@var{s}, size_t @var{maxlen}) 7*9573673dSchristos 8*9573673dSchristos Returns the length of @var{s}, as with @code{strlen}, but never looks 9*9573673dSchristos past the first @var{maxlen} characters in the string. If there is no 10*9573673dSchristos '\0' character in the first @var{maxlen} characters, returns 11*9573673dSchristos @var{maxlen}. 12*9573673dSchristos 13*9573673dSchristos @end deftypefn 14*9573673dSchristos 15*9573673dSchristos */ 16*9573673dSchristos 17*9573673dSchristos #include "config.h" 18*9573673dSchristos 19*9573673dSchristos #include <stddef.h> 20*9573673dSchristos 21*9573673dSchristos size_t strnlen(const char * s,size_t maxlen)22*9573673dSchristosstrnlen (const char *s, size_t maxlen) 23*9573673dSchristos { 24*9573673dSchristos size_t i; 25*9573673dSchristos 26*9573673dSchristos for (i = 0; i < maxlen; ++i) 27*9573673dSchristos if (s[i] == '\0') 28*9573673dSchristos break; 29*9573673dSchristos return i; 30*9573673dSchristos } 31