WMEMCHR(3) | Library Functions Manual | WMEMCHR(3)

# NAME

`wmemchr`, `wmemcmp`, `wmemcpy`, `wmemmove`, `wmempcpy`, `wmemset`, `wcscat`, `wcschr`, `wcscmp`, `wcscpy`, `wcscspn`, `wcslcat`, `wcslcpy`, `wcslen`, `wcsncat`, `wcsncmp`, `wcsncpy`, `wcsnlen`, `wcspbrk`, `wcsrchr`, `wcsspn`, `wcsstr`, `wcswcs` — wide-character string manipulation operations

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <wchar.h>`

wchar_t *
`wmemchr`(const wchar_t *s, wchar_t c, size_t n);

int
`wmemcmp`(const wchar_t *s1, const wchar_t *s2, size_t n);

wchar_t *
`wmemcpy`(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);

wchar_t *
`wmemmove`(wchar_t *s1, const wchar_t *s2, size_t n);

wchar_t *
`wmempcpy`(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);

wchar_t *
`wmemset`(wchar_t *s, wchar_t c, size_t n);

wchar_t *
`wcscat`(wchar_t * restrict s1, const wchar_t * restrict s2);

wchar_t *
`wcschr`(const wchar_t *s, wchar_t c);

int
`wcscmp`(const wchar_t *s1, const wchar_t *s2);

wchar_t *
`wcscpy`(wchar_t * restrict s1, const wchar_t * restrict s2);

size_t
`wcscspn`(const wchar_t *s1, const wchar_t *s2);

size_t
`wcslcat`(wchar_t *s1, const wchar_t *s2, size_t n);

size_t
`wcslcpy`(wchar_t *s1, const wchar_t *s2, size_t n);

size_t
`wcslen`(const wchar_t *s);

wchar_t *
`wcsncat`(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);

int
`wcsncmp`(const wchar_t *s1, const wchar_t * s2, size_t n);

wchar_t *
`wcsncpy`(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);

size_t
`wcsnlen`(const wchar_t *s, size_t maxlen);

wchar_t *
`wcspbrk`(const wchar_t *s1, const wchar_t *s2);

wchar_t *
`wcsrchr`(const wchar_t *s, wchar_t c);

size_t
`wcsspn`(const wchar_t *s1, const wchar_t *s2);

wchar_t *
`wcsstr`(const wchar_t *s1, const wchar_t *s2);

wchar_t *
`wcswcs`(const wchar_t *s1, const wchar_t *s2);

# DESCRIPTION

These functions implement string manipulation operations over wide-character strings. For a detailed description, refer to the documents for the respective single-byte counterpart, such as memchr(3). The `wcswcs`() function is not a part of ISO/IEC 9899:1990 (“ISO C90”) and ISO/IEC 9899/AMD1:1995 (“ISO C90, Amendment 1”), the `wcsstr`() function is strongly recommended to be used.

# SEE ALSO

memchr(3), memcmp(3), memcpy(3), memmove(3), memset(3), stpcpy(3), stpncpy(3), strcasecmp(3), strcat(3), strchr(3), strcmp(3), strcpy(3), strcspn(3), strdup(3), strlcat(3), strlcpy(3), strlen(3), strncat(3), strncmp(3), strncpy(3), strnlen(3), strpbrk(3), strrchr(3), strspn(3), strstr(3)

# STANDARDS

The `wmemchr`(), `wmemcmp`(), `wmemcpy`(), `wmemmove`(), `wmemset`(), `wcscat`(), `wcschr`(), `wcscmp`(), `wcscpy`(), `wcscspn`(), `wcslen`(), `wcsncat`(), `wcsncmp`(), `wcsncpy`(), `wcspbrk`(), `wcsrchr`(), `wcsspn`() and `wcsstr`() functions were first introduced in ISO/IEC 9899/AMD1:1995 (“ISO C90, Amendment 1”) and conform to ISO/IEC 9899:1999 (“ISO C99”). Part of them: `wmemmove`(), `wcscat`(), `wcscpy`(), `wcsncat`() and `wcsncpy`() were modified in ISO/IEC 9899:1999 (“ISO C99”) and gained the `restrict` keyword in parameter list, this new version is present in NetBSD.

The `wcswcs`() function conforms to X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”), it is recommended to use technically equivalent `wcsstr`() for maximum portability.

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

The `wcslcat`() and `wcslcpy`() functions conform to IEEE Std 1003.1-2024 (“POSIX.1”).

The `wmempcpy`() function is a NetBSD extension.

July 30, 2023 | NetBSD 11.0