doc/documentation/manual-pages/ru/man3/strcpy.3
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
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
2021-01-26 00:31:29 +01:00

192 lines
4.7 KiB
Groff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.\" 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 ÇÏÄÁ.