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