WCSDUP(3) | Library Functions Manual | WCSDUP(3)

# NAME

`wcsdup` — save a copy of a wide string

# SYNOPSIS

`#include <wchar.h>`

wchar_t *
`wcsdup`(const wchar_t *str);

# DESCRIPTION

The `wcsdup`() function allocates sufficient memory for a copy of the wide-character 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.

# EXAMPLES

The following will point p to an allocated area of memory containing the nul-terminated string "foobar":

    const char	*o = "foobar";
    wchar_t		*p, b[32];
    size_t		 blen;

    blen = sizeof(b) / sizeof(b[0]);
    if (mbstowcs(b, o, blen) == (size_t)-1)
    	err(1, NULL);
    b[blen - 1] = 0;
    if ((p = wcsdup(b)) == NULL)
    	err(1, NULL);

# ERRORS

The `wcsdup`() 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), strdup(3)

# STANDARDS

The `wcsdup`() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).

# HISTORY

The `wcsdup`() function was ported from NetBSD and first appeared in OpenBSD 5.0.

July 25, 2011 | Debian