189214c7bSSascha Wildner.\" 289214c7bSSascha Wildner.\" Copyright (c) 2016 The DragonFly Project. All rights reserved. 389214c7bSSascha Wildner.\" 489214c7bSSascha Wildner.\" Redistribution and use in source and binary forms, with or without 589214c7bSSascha Wildner.\" modification, are permitted provided that the following conditions 689214c7bSSascha Wildner.\" are met: 789214c7bSSascha Wildner.\" 889214c7bSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 989214c7bSSascha Wildner.\" notice, this list of conditions and the following disclaimer. 1089214c7bSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 1189214c7bSSascha Wildner.\" notice, this list of conditions and the following disclaimer in 1289214c7bSSascha Wildner.\" the documentation and/or other materials provided with the 1389214c7bSSascha Wildner.\" distribution. 1489214c7bSSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its 1589214c7bSSascha Wildner.\" contributors may be used to endorse or promote products derived 1689214c7bSSascha Wildner.\" from this software without specific, prior written permission. 1789214c7bSSascha Wildner.\" 1889214c7bSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1989214c7bSSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2089214c7bSSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 2189214c7bSSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 2289214c7bSSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 2389214c7bSSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 2489214c7bSSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2589214c7bSSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 2689214c7bSSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2789214c7bSSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 2889214c7bSSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2989214c7bSSascha Wildner.\" SUCH DAMAGE. 3089214c7bSSascha Wildner.\" 31*2f1984b8SSascha Wildner.Dd June 5, 2016 3289214c7bSSascha Wildner.Dt KSTRDUP 9 3389214c7bSSascha Wildner.Os 3489214c7bSSascha Wildner.Sh NAME 35*2f1984b8SSascha Wildner.Nm kstrdup , 36*2f1984b8SSascha Wildner.Nm kstrndup 3789214c7bSSascha Wildner.Nd save a copy of a string 3889214c7bSSascha Wildner.Sh SYNOPSIS 3989214c7bSSascha Wildner.In sys/malloc.h 4089214c7bSSascha Wildner.Ft char * 4189214c7bSSascha Wildner.Fn kstrdup "const char *str" "struct malloc_type *type" 42*2f1984b8SSascha Wildner.Ft char * 43*2f1984b8SSascha Wildner.Fn kstrndup "const char *str" "size_t maxlen" "struct malloc_type *type" 4489214c7bSSascha Wildner.Sh DESCRIPTION 4589214c7bSSascha WildnerThe 46*2f1984b8SSascha Wildner.Fn kstrdup 47*2f1984b8SSascha Wildnerfunction allocates sufficient memory of type 4889214c7bSSascha Wildner.Fa type 4989214c7bSSascha Wildnerfor a copy of the string 5089214c7bSSascha Wildner.Fa str , 5189214c7bSSascha Wildnerdoes the copy, and returns a pointer to it. 5289214c7bSSascha WildnerThe pointer may subsequently be used as an 5389214c7bSSascha Wildnerargument to the function 5489214c7bSSascha Wildner.Xr kfree 9 . 55*2f1984b8SSascha Wildner.Pp 56*2f1984b8SSascha WildnerThe 57*2f1984b8SSascha Wildner.Fn kstrndup 58*2f1984b8SSascha Wildnerfunction copies at most 59*2f1984b8SSascha Wildner.Fa maxlen 60*2f1984b8SSascha Wildnercharacters from the string 61*2f1984b8SSascha Wildner.Fa str 62*2f1984b8SSascha Wildnerand will always 63*2f1984b8SSascha Wildner.Dv NUL 64*2f1984b8SSascha Wildnerterminate the copied string. 6589214c7bSSascha Wildner.Sh SEE ALSO 6689214c7bSSascha Wildner.Xr kfree 9 , 6789214c7bSSascha Wildner.Xr kmalloc 9 68