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