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 * strdup(const char * s)20strdup(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 } 28