1.\" $NetBSD: wmemchr.3,v 1.17 2016/10/15 14:22:00 kamil Exp $ 2.\" 3.\" Copyright (c) 1990, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" This code is derived from software contributed to Berkeley by 7.\" Chris Torek and the American National Standards Committee X3, 8.\" on Information Processing Systems. 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice, this list of conditions and the following disclaimer. 15.\" 2. Redistributions in binary form must reproduce the above copyright 16.\" notice, this list of conditions and the following disclaimer in the 17.\" documentation and/or other materials provided with the distribution. 18.\" 3. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" from: @(#)strcpy.3 8.1 (Berkeley) 6/4/93 35.\" 36.Dd October 15, 2016 37.Dt WMEMCHR 3 38.Os 39.Sh NAME 40.Nm wmemchr , 41.Nm wmemcmp , 42.Nm wmemcpy , 43.Nm wmemmove , 44.Nm wmemset , 45.Nm wcscat , 46.Nm wcschr , 47.Nm wcscmp , 48.Nm wcscpy , 49.Nm wcscspn , 50.Nm wcslcat , 51.Nm wcslcpy , 52.Nm wcslen , 53.Nm wcsncat , 54.Nm wcsncmp , 55.Nm wcsncpy , 56.Nm wcsnlen , 57.Nm wcspbrk , 58.Nm wcsrchr , 59.Nm wcsspn , 60.Nm wcsstr , 61.Nm wcswcs 62.Nd wide-character string manipulation operations 63.Sh LIBRARY 64.Lb libc 65.Sh SYNOPSIS 66.In wchar.h 67.Ft wchar_t * 68.Fn wmemchr "const wchar_t *s" "wchar_t c" "size_t n" 69.Ft int 70.Fn wmemcmp "const wchar_t *s1" "const wchar_t *s2" "size_t n" 71.Ft wchar_t * 72.Fn wmemcpy "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" 73.Ft wchar_t * 74.Fn wmemmove "wchar_t *s1" "const wchar_t *s2" "size_t n" 75.Ft wchar_t * 76.Fn wmemset "wchar_t *s" "wchar_t c" "size_t n" 77.Ft wchar_t * 78.Fn wcscat "wchar_t * restrict s1" "const wchar_t * restrict s2" 79.Ft wchar_t * 80.Fn wcschr "const wchar_t *s" "wchar_t c" 81.Ft int 82.Fn wcscmp "const wchar_t *s1" "const wchar_t *s2" 83.Ft wchar_t * 84.Fn wcscpy "wchar_t * restrict s1" "const wchar_t * restrict s2" 85.Ft size_t 86.Fn wcscspn "const wchar_t *s1" "const wchar_t *s2" 87.Ft size_t 88.Fn wcslcat "wchar_t *s1" "const wchar_t *s2" "size_t n" 89.Ft size_t 90.Fn wcslcpy "wchar_t *s1" "const wchar_t *s2" "size_t n" 91.Ft size_t 92.Fn wcslen "const wchar_t *s" 93.Ft wchar_t * 94.Fn wcsncat "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" 95.Ft int 96.Fn wcsncmp "const wchar_t *s1" "const wchar_t * s2" "size_t n" 97.Ft wchar_t * 98.Fn wcsncpy "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" 99.Ft size_t 100.Fn wcsnlen "const wchar_t *s" "size_t maxlen" 101.Ft wchar_t * 102.Fn wcspbrk "const wchar_t *s1" "const wchar_t *s2" 103.Ft wchar_t * 104.Fn wcsrchr "const wchar_t *s" "wchar_t c" 105.Ft size_t 106.Fn wcsspn "const wchar_t *s1" "const wchar_t *s2" 107.Ft wchar_t * 108.Fn wcsstr "const wchar_t *s1" "const wchar_t *s2" 109.Ft wchar_t * 110.Fn wcswcs "const wchar_t *s1" "const wchar_t *s2" 111.Sh DESCRIPTION 112These functions implement string manipulation operations over wide-character 113strings. 114For a detailed description, refer to the documents for the respective 115single-byte counterpart, such as 116.Xr memchr 3 . 117The 118.Fn wcswcs 119function is not a part of 120.St -isoC 121and 122.St -isoC-amd1 , 123the 124.Fn wcsstr 125function is strongly recommended to be used. 126.Sh SEE ALSO 127.Xr memchr 3 , 128.Xr memcmp 3 , 129.Xr memcpy 3 , 130.Xr memmove 3 , 131.Xr memset 3 , 132.Xr stpcpy 3 , 133.Xr stpncpy 3 , 134.Xr strcasecmp 3 , 135.Xr strcat 3 , 136.Xr strchr 3 , 137.Xr strcmp 3 , 138.Xr strcpy 3 , 139.Xr strcspn 3 , 140.Xr strdup 3 , 141.Xr strlcat 3 , 142.Xr strlcpy 3 , 143.Xr strlen 3 , 144.Xr strncat 3 , 145.Xr strncmp 3 , 146.Xr strncpy 3 , 147.Xr strnlen 3 , 148.Xr strpbrk 3 , 149.Xr strrchr 3 , 150.Xr strspn 3 , 151.Xr strstr 3 152.Sh STANDARDS 153The 154.Fn wmemchr , 155.Fn wmemcmp , 156.Fn wmemcpy , 157.Fn wmemmove , 158.Fn wmemset , 159.Fn wcscat , 160.Fn wcschr , 161.Fn wcscmp , 162.Fn wcscpy , 163.Fn wcscspn , 164.Fn wcslen , 165.Fn wcsncat , 166.Fn wcsncmp , 167.Fn wcsncpy , 168.Fn wcspbrk , 169.Fn wcsrchr , 170.Fn wcsspn 171and 172.Fn wcsstr 173functions were first introduced in 174.St -isoC-amd1 175and conform to 176.St -isoC-99 . 177Part of them: 178.Fn wmemmove , 179.Fn wcscat , 180.Fn wcscpy , 181.Fn wcsncat 182and 183.Fn wcsncpy 184were modified in 185.St -isoC-99 186and gained the 187.Dv restrict 188keyword in parameter list, 189this new version is present in 190.Nx . 191.Pp 192The 193.Fn wcswcs 194function conforms to 195.St -xpg4.2 , 196it is recommended to use technically equivalent 197.Fn wcsstr 198for maximum portability. 199.Pp 200The 201.Fn wcsnlen 202function conforms to 203.St -p1003.1-2008 . 204.Pp 205The 206.Fn wcslcat 207and 208.Fn wcslcpy 209functions are 210.Nx 211extensions. 212