source: branches/libc-0.6/src/binutils/libiberty/strdup.c

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 656 bytes
Line 
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#ifdef ANSI_PROTOTYPES
14#include <stddef.h>
15#else
16#define size_t unsigned long
17#endif
18
19extern size_t strlen PARAMS ((const char*));
20extern PTR malloc PARAMS ((size_t));
21extern PTR memcpy PARAMS ((PTR, const PTR, size_t));
22
23char *
24strdup(s)
25 char *s;
26{
27 size_t len = strlen (s) + 1;
28 char *result = (char*) malloc (len);
29 if (result == (char*) 0)
30 return (char*) 0;
31 return (char*) memcpy (result, s, len);
32}
Note: See TracBrowser for help on using the repository browser.