WvStreams
strndup.c
1/* strndup.c
2 *
3 */
4
5/* Written by Niels Möller <nisse@lysator.liu.se>
6 *
7 * This file is hereby placed in the public domain.
8 */
9
10#include <stdlib.h>
11#include <string.h>
12
13char *
14strndup (const char *s, size_t size)
15{
16 char *r;
17 char *end = memchr(s, 0, size);
18
19 if (end)
20 /* Length + 1 */
21 size = end - s + 1;
22
23 r = malloc(size);
24
25 if (size)
26 {
27 memcpy(r, s, size-1);
28 r[size-1] = '\0';
29 }
30 return r;
31}