OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / original / man3 / strcpy.3
index 909dec0..92e0ce2 100644 (file)
@@ -32,7 +32,7 @@
 .\" 2007-06-15, Marc Boyer <marc.boyer@enseeiht.fr> + mtk
 .\"     Improve discussion of strncpy().
 .\"
 .\" 2007-06-15, Marc Boyer <marc.boyer@enseeiht.fr> + mtk
 .\"     Improve discussion of strncpy().
 .\"
-.TH STRCPY 3  2012-07-19 "GNU" "Linux Programmer's Manual"
+.TH STRCPY 3  2014-05-21 "GNU" "Linux Programmer's Manual"
 .SH NAME
 strcpy, strncpy \- copy a string
 .SH SYNOPSIS
 .SH NAME
 strcpy, strncpy \- copy a string
 .SH SYNOPSIS
@@ -46,22 +46,33 @@ strcpy, strncpy \- copy a string
 .SH DESCRIPTION
 The
 .BR strcpy ()
 .SH DESCRIPTION
 The
 .BR strcpy ()
-function copies the string pointed to by \fIsrc\fP,
+function copies the string pointed to by
+.IR src ,
 including the terminating null byte (\(aq\\0\(aq),
 including the terminating null byte (\(aq\\0\(aq),
-to the buffer pointed to by \fIdest\fP.
+to the buffer pointed to by
+.IR dest .
 The strings may not overlap, and the destination string
 The strings may not overlap, and the destination string
-\fIdest\fP must be large enough to receive the copy.
+.I dest
+must be large enough to receive the copy.
 .IR "Beware of buffer overruns!"
 (See BUGS.)
 .PP
 The
 .BR strncpy ()
 function is similar, except that at most
 .IR "Beware of buffer overruns!"
 (See BUGS.)
 .PP
 The
 .BR strncpy ()
 function is similar, except that at most
-\fIn\fP bytes of \fIsrc\fP are copied.
+.I n
+bytes of
+.I src
+are copied.
 .BR Warning :
 If there is no null byte
 .BR Warning :
 If there is no null byte
-among the first \fIn\fP bytes of \fIsrc\fP,
-the string placed in \fIdest\fP will not be null-terminated.
+among the first
+.I n
+bytes of
+.IR src ,
+the string placed in
+.I dest
+will not be null-terminated.
 .PP
 If the length of
 .I src
 .PP
 If the length of
 .I src
@@ -100,7 +111,15 @@ The
 and
 .BR strncpy ()
 functions return a pointer to
 and
 .BR strncpy ()
 functions return a pointer to
-the destination string \fIdest\fP.
+the destination string
+.IR dest .
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR strcpy ()
+and
+.BR strncpy ()
+functions are thread-safe.
 .SH CONFORMING TO
 SVr4, 4.3BSD, C89, C99.
 .SH NOTES
 .SH CONFORMING TO
 SVr4, 4.3BSD, C89, C99.
 .SH NOTES
@@ -108,8 +127,12 @@ Some programmers consider
 .BR strncpy ()
 to be inefficient and error prone.
 If the programmer knows (i.e., includes code to test!)
 .BR strncpy ()
 to be inefficient and error prone.
 If the programmer knows (i.e., includes code to test!)
-that the size of \fIdest\fP is greater than
-the length of \fIsrc\fP, then
+that the size of
+.I dest
+is greater than
+the length of
+.IR src ,
+then
 .BR strcpy ()
 can be used.
 
 .BR strcpy ()
 can be used.
 
@@ -122,26 +145,35 @@ and that unused bytes in the target buffer are zeroed out
 written to media or transmitted to another process via an
 interprocess communication technique).
 
 written to media or transmitted to another process via an
 interprocess communication technique).
 
-If there is no terminating null byte in the first \fIn\fP
-bytes of \fIsrc\fP,
+If there is no terminating null byte in the first
+.I n
+bytes of
+.IR src ,
 .BR strncpy ()
 .BR strncpy ()
-produces an unterminated string in \fIdest\fP.
-You can force termination using something like the following:
+produces an unterminated string in
+.IR dest .
+If
+.I buf
+has length
+.IR buflen ,
+you can force termination using something like the following:
 .in +4n
 .nf
 
 .in +4n
 .nf
 
-strncpy(buf, str, n);
-if (n > 0)
-    buf[n \- 1]= \(aq\\0\(aq;
+strncpy(buf, str, buflen \- 1);
+if (buflen > 0)
+    buf[buflen \- 1]= \(aq\\0\(aq;
 .fi
 .in
 .PP
 .fi
 .in
 .PP
-(Of course, the above technique ignores the fact that
-information contained in
+(Of course, the above technique ignores the fact that, if
 .I src
 .I src
-is lost in the copying to
+contains more than
+.I "buflen\ \-\ 1"
+bytes, information is lost in the copying to
 .IR dest .)
 .IR dest .)
-
+.\"
+.SS strlcpy()
 Some systems (the BSDs, Solaris, and others) provide the following function:
 
     size_t strlcpy(char *dest, const char *src, size_t size);
 Some systems (the BSDs, Solaris, and others) provide the following function:
 
     size_t strlcpy(char *dest, const char *src, size_t size);
@@ -202,3 +234,12 @@ in ways that may make the impossible possible.
 .BR string (3),
 .BR wcscpy (3),
 .BR wcsncpy (3)
 .BR string (3),
 .BR wcscpy (3),
 .BR wcsncpy (3)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.