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