12e0724c7Sespie /* strncmp -- compare two strings, stop after n bytes. 22e0724c7Sespie This function is in the public domain. */ 32e0724c7Sespie 49588ddcfSespie /* 59588ddcfSespie 69588ddcfSespie @deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n}) 79588ddcfSespie 89588ddcfSespie Compares the first @var{n} bytes of two strings, returning a value as 99588ddcfSespie @code{strcmp}. 109588ddcfSespie 119588ddcfSespie @end deftypefn 129588ddcfSespie 139588ddcfSespie */ 149588ddcfSespie 152e0724c7Sespie #include <ansidecl.h> 162e0724c7Sespie #include <stddef.h> 172e0724c7Sespie 182e0724c7Sespie int strncmp(const char * s1,const char * s2,register size_t n)19*150b7e42Smiodstrncmp(const char *s1, const char *s2, register size_t n) 202e0724c7Sespie { 212e0724c7Sespie register unsigned char u1, u2; 222e0724c7Sespie 232e0724c7Sespie while (n-- > 0) 242e0724c7Sespie { 252e0724c7Sespie u1 = (unsigned char) *s1++; 262e0724c7Sespie u2 = (unsigned char) *s2++; 272e0724c7Sespie if (u1 != u2) 282e0724c7Sespie return u1 - u2; 292e0724c7Sespie if (u1 == '\0') 302e0724c7Sespie return 0; 312e0724c7Sespie } 322e0724c7Sespie return 0; 332e0724c7Sespie } 34