char
*
strdup(
const char *str
)
char
*
strndup(
const char *str
, size_t len
)
)
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.
char *p;
if ((p = strdup("foobar")) == NULL) {
fprintf(stderr, "Out of memory.\n");
exit(1);
}
)
function may fail and set the external variable
errno
for any of the errors specified for the library function
malloc(3).
)
function first appeared in
4.4BSD.
The
strndup(
)
function was added in
NetBSD4.0.