NAME
strdup,
strndup —
save a copy of a string
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <string.h>
char *
strdup(
const char
*str);
char *
strndup(
const
char *str,
size_t
len);
DESCRIPTION
The
strdup() function allocates sufficient memory for a copy
of the string
str, does the copy, and returns a pointer
to it. The pointer may subsequently be used as an argument to the function
free(3).
If insufficient memory is available,
NULL
is returned.
The
strndup() function copies at most
len characters from the string
str
always
NUL
terminating the copied string.
EXAMPLES
The following will point
p to an allocated area of memory
containing the nul-terminated string “foobar”:
char *p;
if ((p = strdup("foobar")) == NULL) {
fprintf(stderr, "Out of memory.\n");
exit(1);
}
ERRORS
The
strdup() function may fail and set the external variable
errno for any of the errors specified for the library
function
malloc(3).
SEE ALSO
free(3),
malloc(3),
strcpy(3),
strlen(3)
STANDARDS
The
strdup() function conforms to
IEEE Std
1003.1-2001 (“POSIX.1”).
HISTORY
The
strdup() function first appeared in
4.4BSD. The
strndup() function was
added in
NetBSD 4.0.