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 |
|
---|
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 | #ifdef ANSI_PROTOTYPES
|
---|
14 | #include <stddef.h>
|
---|
15 | #else
|
---|
16 | #define size_t unsigned long
|
---|
17 | #endif
|
---|
18 |
|
---|
19 | extern size_t strlen PARAMS ((const char*));
|
---|
20 | extern PTR malloc PARAMS ((size_t));
|
---|
21 | extern PTR memcpy PARAMS ((PTR, const PTR, size_t));
|
---|
22 |
|
---|
23 | char *
|
---|
24 | strdup(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.