I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
192 lines
4.7 KiB
Groff
192 lines
4.7 KiB
Groff
.\" Copyright (c) 1990, 1991, 1993
|
||
.\" The Regents of the University of California. All rights reserved.
|
||
.\"
|
||
.\" This code is derived from software contributed to Berkeley by
|
||
.\" Chris Torek and the American National Standards Committee X3,
|
||
.\" on Information Processing Systems.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\" 4. Neither the name of the University nor the names of its contributors
|
||
.\" may be used to endorse or promote products derived from this software
|
||
.\" without specific prior written permission.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" @(#)strcpy.3 8.1 (Berkeley) 6/4/93
|
||
.\" %FreeBSD: src/lib/libc/string/strcpy.3,v 1.26 2007/01/09 00:28:12 imp Exp %
|
||
.\" $FreeBSDru: frdp/doc/ru_RU.KOI8-R/man/man3/strcpy.3,v 1.2 2007/10/30 19:34:10 ru Exp $
|
||
.\" $FreeBSD$
|
||
.\"
|
||
.Dd 9 Á×ÇÕÓÔÁ 2001
|
||
.Dt STRCPY 3
|
||
.Os
|
||
.Sh îáú÷áîéå
|
||
.Nm strcpy , strncpy
|
||
.Nd ËÏÐÉÒÏ×ÁÔØ ÓÔÒÏËÉ
|
||
.Sh âéâìéïôåëá
|
||
.Lb libc
|
||
.Sh óéîôáëóéó
|
||
.In string.h
|
||
.Ft char *
|
||
.Fn stpcpy "char *dst" "const char *src"
|
||
.Ft char *
|
||
.Fn strcpy "char * restrict dst" "const char * restrict src"
|
||
.Ft char *
|
||
.Fn strncpy "char * restrict dst" "const char * restrict src" "size_t len"
|
||
.Sh ïðéóáîéå
|
||
æÕÎËÃÉÉ
|
||
.Fn stpcpy
|
||
É
|
||
.Fn strcpy
|
||
ËÏÐÉÒÕÀÔ ÉÓÈÏÄÎÕÀ ÓÔÒÏËÕ
|
||
.Fa src
|
||
× ÃÅÌÅ×ÕÀ ÓÔÒÏËÕ
|
||
.Fa dst
|
||
(×ËÌÀÞÁÑ ÚÁ×ÅÒÛÁÀÝÉÊ ÓÉÍ×ÏÌ
|
||
.Ql \e0 ) .
|
||
.Pp
|
||
æÕÎËÃÉÑ
|
||
.Fn strncpy
|
||
ËÏÐÉÒÕÅÔ ÎÅ ÂÏÌÅÅ
|
||
.Fa len
|
||
ÓÉÍ×ÏÌÏ× ÉÚ
|
||
.Fa src
|
||
×
|
||
.Fa dst .
|
||
åÓÌÉ ÄÌÉÎÁ
|
||
.Fa src
|
||
ÍÅÎØÛÅ, ÞÅÍ
|
||
.Fa len ,
|
||
ÏÓÔÁÔÏË ÓÔÒÏËÉ
|
||
.Fa dst
|
||
ÚÁÐÏÌÎÑÅÔÓÑ ÓÉÍ×ÏÌÁÍÉ
|
||
.Ql \e0 .
|
||
÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ,
|
||
.Fa dst
|
||
.Em ÎÅ
|
||
ÚÁ×ÅÒÛÁÅÔÓÑ ÓÉÍ×ÏÌÏÍ
|
||
.Ql \e0 .
|
||
.Sh ÷ïú÷òáýáåíùå úîáþåîéñ
|
||
æÕÎËÃÉÉ
|
||
.Fn strcpy
|
||
É
|
||
.Fn strncpy
|
||
×ÏÚ×ÒÁÝÁÀÔ
|
||
.Fa dst .
|
||
æÕÎËÃÉÑ
|
||
.Fn stpcpy
|
||
×ÏÚ×ÒÁÝÁÅÔ ÕËÁÚÁÔÅÌØ ÎÁ ÚÁ×ÅÒÛÁÀÝÉÊ ÓÉÍ×ÏÌ
|
||
.Ql \e0
|
||
ÓÔÒÏËÉ
|
||
.Fa dst .
|
||
.Sh ðòéíåòù
|
||
îÉÖÅÓÌÅÄÕÀÝÅÅ ÚÁÐÉÛÅÔ ÓÔÒÏËÕ
|
||
.Dq Li abc\e0\e0\e0
|
||
× ÍÁÓÓÉ×
|
||
.Va chararray :
|
||
.Bd -literal -offset indent
|
||
char chararray[6];
|
||
|
||
(void)strncpy(chararray, "abc", sizeof(chararray));
|
||
.Ed
|
||
.Pp
|
||
îÉÖÅÓÌÅÄÕÀÝÅÅ ÚÁÐÉÛÅÔ × ÍÁÓÓÉ×
|
||
.Va chararray
|
||
ÓÔÒÏËÕ
|
||
.Dq Li abcdef :
|
||
.Bd -literal -offset indent
|
||
char chararray[6];
|
||
|
||
(void)strncpy(chararray, "abcdefgh", sizeof(chararray));
|
||
.Ed
|
||
.Pp
|
||
îÅÏÂÈÏÄÉÍÏ ÚÁÍÅÔÉÔØ, ÞÔÏ ÜÔÏ
|
||
.Em ÎÅ
|
||
ÚÁ×ÅÒÛÉÔ
|
||
.Va chararray
|
||
ÓÉÍ×ÏÌÏÍ
|
||
.Tn NUL ,
|
||
ÐÏÓËÏÌØËÕ ÄÌÉÎÁ ÉÓÈÏÄÎÏÊ ÓÔÒÏËÉ ÎÅ ÍÅÎØÛÅ ÚÎÁÞÅÎÉÑ ÁÒÇÕÍÅÎÔÁ
|
||
.Fa len .
|
||
.Pp
|
||
îÉÖÅÓÌÅÄÕÀÝÅÅ ËÏÐÉÒÕÅÔ ÓÔÏÌØËÏ ÓÉÍ×ÏÌÏ× ÉÚ
|
||
.Va input
|
||
×
|
||
.Va buf ,
|
||
ÓËÏÌØËÏ ×ÏÚÍÏÖÎÏ, É ÚÁ×ÅÒÛÁÅÔ ÒÅÚÕÌØÔÁÔ ÓÉÍ×ÏÌÏÍ
|
||
.Tn NUL .
|
||
ðÏÓËÏÌØËÕ
|
||
.Fn strncpy
|
||
.Em ÎÅ
|
||
ÇÁÒÁÎÔÉÒÕÅÔ ÚÁ×ÅÒÛÅÎÉÅ ÓÔÒÏËÉ ÓÉÍ×ÏÌÏÍ
|
||
.Tn NUL ,
|
||
ÜÔÏ ÄÏÌÖÎÏ ÂÙÔØ ÓÄÅÌÁÎÏ Ñ×ÎÏ.
|
||
.Bd -literal -offset indent
|
||
char buf[1024];
|
||
|
||
(void)strncpy(buf, input, sizeof(buf) - 1);
|
||
buf[sizeof(buf) - 1] = '\e0';
|
||
.Ed
|
||
.Pp
|
||
íÏÖÎÏ ÓÄÅÌÁÔØ ÔÏ ÖÅ ÓÁÍÏÅ, ÎÏ ÌÕÞÛÅ, Ó ÐÏÍÏÝØÀ
|
||
.Xr strlcpy 3 ,
|
||
ËÁË ÐÏËÁÚÁÎÏ × ÓÌÅÄÕÀÝÅÍ ÐÒÉÍÅÒÅ:
|
||
.Pp
|
||
.Dl "(void)strlcpy(buf, input, sizeof(buf));"
|
||
.Pp
|
||
óÌÅÄÕÅÔ ÏÔÍÅÔÉÔØ, ÞÔÏ ÐÏÓËÏÌØËÕ ÆÕÎËÃÉÑ
|
||
.Xr strlcpy 3
|
||
ÎÅ ÏÐÒÅÄÅÌÅÎÁ ÎÉ × ÏÄÎÏÍ ÓÔÁÎÄÁÒÔÅ, ÔÏ Å£ ÓÔÏÉÔ ÉÓÐÏÌØÚÏ×ÁÔØ
|
||
ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÐÅÒÅÎÏÓÉÍÏÓÔØ ÎÅ ÔÒÅÂÕÅÔÓÑ.
|
||
.Sh óïïâòáöåîéñ âåúïðáóîïóôé
|
||
æÕÎËÃÉÑ
|
||
.Fn strcpy
|
||
ÌÅÇËÏ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÎÅÐÒÁ×ÉÌØÎÙÍ ÓÐÏÓÏÂÏÍ, ÐÏÚ×ÏÌÑÀÝÉÍ
|
||
ÚÌÏÎÁÍÅÒÅÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ ÐÒÏÉÚ×ÏÌØÎÙÍ ÏÂÒÁÚÏÍ ÉÚÍÅÎÉÔØ
|
||
ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÒÁÂÏÔÁÀÝÅÊ ÐÒÏÇÒÁÍÍÙ ÐÏÓÒÅÄÓÔ×ÏÍ ÐÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ
|
||
(buffer overflow attack).
|
||
(óÍ.\& FSA É ÒÁÚÄÅÌ
|
||
.Sx ðòéíåòù . )
|
||
.Sh óíïôòé ôáëöå
|
||
.Xr bcopy 3 ,
|
||
.Xr memccpy 3 ,
|
||
.Xr memcpy 3 ,
|
||
.Xr memmove 3 ,
|
||
.Xr strlcpy 3
|
||
.Rs
|
||
.%T "The FreeBSD Security Architecture"
|
||
.Re
|
||
.Sh óôáîäáòôù
|
||
æÕÎËÃÉÉ
|
||
.Fn strcpy
|
||
É
|
||
.Fn strncpy
|
||
ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÓÔÁÎÄÁÒÔÕ
|
||
.St -isoC .
|
||
æÕÎËÃÉÑ
|
||
.Fn stpcpy
|
||
ÅÓÔØ ÎÁÓÌÅÄÉÅ MS-DOS É GNU, É ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÎÉ ÏÄÎÏÍÕ
|
||
ÓÔÁÎÄÁÒÔÕ.
|
||
.Sh éóôïòéñ
|
||
æÕÎËÃÉÑ
|
||
.Fn stpcpy
|
||
×ÐÅÒ×ÙÅ ÐÏÑ×ÉÌÁÓØ ×Ï
|
||
.Fx 4.4 ,
|
||
ÐÒÉÄÑ ÉÚ Linux ÏÂÒÁÚÃÁ 1998 ÇÏÄÁ.
|