strdup.c revision 1.5
1/* 2 3@deftypefn Supplemental char* strdup (const char *@var{s}) 4 5Returns 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 15extern size_t strlen (const char*); 16extern PTR malloc (size_t); 17extern PTR memcpy (PTR, const PTR, size_t); 18 19char * 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