xref: /freebsd/lib/libc/string/memccpy.3 (revision 7ed159c6cc00adf6f75f9a43024f23509f5b8e5e)
158f0484fSRodney W. Grimes.\" Copyright (c) 1990, 1991, 1993
258f0484fSRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
358f0484fSRodney W. Grimes.\"
458f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
558f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions
658f0484fSRodney W. Grimes.\" are met:
758f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
858f0484fSRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
958f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
1058f0484fSRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
1158f0484fSRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
123fb3b97cSEd Maste.\" 3. Neither the name of the University nor the names of its contributors
1358f0484fSRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
1458f0484fSRodney W. Grimes.\"    without specific prior written permission.
1558f0484fSRodney W. Grimes.\"
1658f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
1758f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1858f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1958f0484fSRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2058f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2158f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2258f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2358f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2458f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2558f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2658f0484fSRodney W. Grimes.\" SUCH DAMAGE.
2758f0484fSRodney W. Grimes.\"
28e0d4f419SRobert Clausecker.Dd December 5, 2023
2958f0484fSRodney W. Grimes.Dt MEMCCPY 3
3058f0484fSRodney W. Grimes.Os
3158f0484fSRodney W. Grimes.Sh NAME
3258f0484fSRodney W. Grimes.Nm memccpy
3358f0484fSRodney W. Grimes.Nd copy string until character found
3425bb73e0SAlexey Zelkin.Sh LIBRARY
3525bb73e0SAlexey Zelkin.Lb libc
3658f0484fSRodney W. Grimes.Sh SYNOPSIS
3732eef9aeSRuslan Ermilov.In string.h
3858f0484fSRodney W. Grimes.Ft void *
39e0d4f419SRobert Clausecker.Fo memccpy
40e0d4f419SRobert Clausecker.Fa "void * restrict dst"
41e0d4f419SRobert Clausecker.Fa "const void * restrict src"
42e0d4f419SRobert Clausecker.Fa "int c"
43e0d4f419SRobert Clausecker.Fa "size_t len"
44e0d4f419SRobert Clausecker.Fc
4558f0484fSRodney W. Grimes.Sh DESCRIPTION
4658f0484fSRodney W. GrimesThe
4758f0484fSRodney W. Grimes.Fn memccpy
4858f0484fSRodney W. Grimesfunction
4958f0484fSRodney W. Grimescopies bytes from string
5058f0484fSRodney W. Grimes.Fa src
5158f0484fSRodney W. Grimesto string
5258f0484fSRodney W. Grimes.Fa dst .
5358f0484fSRodney W. GrimesIf the character
5458f0484fSRodney W. Grimes.Fa c
552eeaf934SRuslan Ermilov(as converted to an
562eeaf934SRuslan Ermilov.Vt "unsigned char" )
572eeaf934SRuslan Ermilovoccurs in the string
5858f0484fSRodney W. Grimes.Fa src ,
5958f0484fSRodney W. Grimesthe copy stops and a pointer to the byte after the copy of
6058f0484fSRodney W. Grimes.Fa c
6158f0484fSRodney W. Grimesin the string
6258f0484fSRodney W. Grimes.Fa dst
6358f0484fSRodney W. Grimesis returned.
6458f0484fSRodney W. GrimesOtherwise,
6558f0484fSRodney W. Grimes.Fa len
6658f0484fSRodney W. Grimesbytes are copied, and a NULL pointer is returned.
67e0d4f419SRobert ClauseckerIf
68e0d4f419SRobert Clausecker.Fa src
69e0d4f419SRobert Clauseckerand
70e0d4f419SRobert Clausecker.Fa dst
71e0d4f419SRobert Clauseckeroverlap, behavior is undefined.
7258f0484fSRodney W. Grimes.Sh SEE ALSO
7358f0484fSRodney W. Grimes.Xr bcopy 3 ,
7458f0484fSRodney W. Grimes.Xr memcpy 3 ,
7558f0484fSRodney W. Grimes.Xr memmove 3 ,
7658f0484fSRodney W. Grimes.Xr strcpy 3
77e0d4f419SRobert Clausecker.Sh STANDARDS
78e0d4f419SRobert ClauseckerThe
79e0d4f419SRobert Clausecker.Fn memccpy
80e0d4f419SRobert Clauseckerfunction conforms to
81e0d4f419SRobert Clausecker.St -p1003.1-2004
82e0d4f419SRobert Clauseckerand
83*7ed159c6SRobert Clausecker.St -isoC-2024 .
8458f0484fSRodney W. Grimes.Sh HISTORY
8558f0484fSRodney W. GrimesThe
8658f0484fSRodney W. Grimes.Fn memccpy
877bdf80e5SMike Pritchardfunction first appeared in
88e0d4f419SRobert Clausecker.Bx 4.4
89e0d4f419SRobert Clauseckerand was first specified in the
90*7ed159c6SRobert Clausecker.St -svid1 .
91e0d4f419SRobert ClauseckerThe
92e0d4f419SRobert Clausecker.Ft restrict
93e0d4f419SRobert Clauseckerkeyword was added to the prototype in
94e0d4f419SRobert Clausecker.Fx 5.0.0
95e0d4f419SRobert Clauseckerin accordance with the updated specification of
96e0d4f419SRobert Clausecker.St -p1003.1-2004 .
97