0
|
1 /*
|
|
2
|
|
3 @deftypefn Supplemental char* strdup (const char *@var{s})
|
|
4
|
|
5 Returns a pointer to a copy of @var{s} in memory obtained from
|
|
6 @code{malloc}, or @code{NULL} if insufficient memory was available.
|
|
7
|
|
8 @end deftypefn
|
|
9
|
|
10 */
|
|
11
|
|
12 #include <ansidecl.h>
|
|
13 #include <stddef.h>
|
|
14
|
|
15 extern size_t strlen (const char*);
|
|
16 extern PTR malloc (size_t);
|
|
17 extern PTR memcpy (PTR, const PTR, size_t);
|
|
18
|
|
19 char *
|
|
20 strdup(const char *s)
|
|
21 {
|
|
22 size_t len = strlen (s) + 1;
|
|
23 char *result = (char*) malloc (len);
|
|
24 if (result == (char*) 0)
|
|
25 return (char*) 0;
|
|
26 return (char*) memcpy (result, s, len);
|
|
27 }
|