1 #include "libcflat.h" 2 3 unsigned long strlen(const char *buf) 4 { 5 unsigned long len = 0; 6 7 while (*buf++) 8 ++len; 9 return len; 10 } 11 12 char *strcat(char *dest, const char *src) 13 { 14 char *p = dest; 15 16 while (*p) 17 ++p; 18 while ((*p++ = *src++) != 0) 19 ; 20 return dest; 21 } 22 23 void *memset(void *s, int c, size_t n) 24 { 25 size_t i; 26 char *a = s; 27 28 for (i = 0; i < n; ++i) 29 a[i] = c; 30 31 return s; 32 } 33 34 long atol(const char *ptr) 35 { 36 long acc = 0; 37 const char *s = ptr; 38 int neg, c; 39 40 while (*s == ' ' || *s == '\t') 41 s++; 42 if (*s == '-'){ 43 neg = 1; 44 s++; 45 } else { 46 neg = 0; 47 if (*s == '+') 48 s++; 49 } 50 51 while (*s) { 52 if (*s < '0' || *s > '9') 53 break; 54 c = *s - '0'; 55 acc = acc * 10 + c; 56 s++; 57 } 58 59 if (neg) 60 acc = -acc; 61 62 return acc; 63 } 64