blob: 290aec492b5f3f2259bd36fc6bd451c0f6dbc109 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include <stdint.h>
#include <stddef.h>
#include "string.h"
size_t strlen(const char *str)
{
int len = 0;
while(*str++)
len++;
return len;
}
void* memset(void *buf, int val, size_t sz)
{
for(size_t i = 0; i < sz; ++i)
{
((uint8_t*)buf)[i] = (uint8_t) val;
}
return buf;
}
void* memcpy(void *dest, void *src, size_t sz)
{
while(sz--)
*(char*)dest++ = *(char*)src++;
return dest;
}
char* strdup(const char *str)
{
int len = strlen(str);
/* allocate room for the string and it's NULL terminator */
char *ret = malloc(len + 1);
memcpy(ret, str, len + 1);
return ret;
}
char* strncat(char *dest, const char *src, size_t n)
{
/* save this for the return */
char *d = dest;
while(*dest++);
while(n && (*dest++ = *src++)) --n;
if(*dest)
*dest = '\0';
return d;
}
|