#include "stdlib.h" void *memset(void *s, int c, size_t n) { char *p = (char *) s; for (size_t i = 0; i < n; i++, p++) *p = (char) c; return s; } /* overlap is not handled */ void *memcpy(void *dest, void *src, size_t n) { char *s = (char *) src; char *d = (char *) dest; for (size_t i = 0; i < n; i++, s++, d++) *d = *s; return dest; } int strncmp(const char *s1, const char *s2, size_t n) { for (size_t i = 0; i < n; i++, s1++, s2++) { if (*s1 < *s2) return -1; if (*s1 > *s2) return 1; } return 0; }