summaryrefslogtreecommitdiff
path: root/lib/libc/string/strndup.c
blob: 318561ca25da122921e4a0eec957c6d1a6163b7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdlib.h> // for NULL, malloc
#include <string.h> // for memcpy, size_t, strndup

char *strndup(const char *s, size_t size)
{
	char *result = malloc(size + 1);

	if (result == NULL)
		return NULL;

	memcpy(result, s, size);
	result[size] = '\0';

	return result;
}