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