.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH STPCPY 3 2012-03-15 "GNU" "Linux Programmer's Manual"
+.TH STPCPY 3 2016-03-15 "GNU" "Linux Programmer's Manual"
.SH NAME
stpcpy \- copy a string returning a pointer to its end
.SH SYNOPSIS
.nf
.B #include <string.h>
-.sp
+.PP
.BI "char *stpcpy(char *" dest ", const char *" src );
.fi
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.BR stpcpy ():
.PD 0
.ad l
.RS 4
.TP 4
Since glibc 2.10:
-_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
+_POSIX_C_SOURCE\ >=\ 200809L
.TP
Before glibc 2.10:
_GNU_SOURCE
.I dest
(that is, the address of the terminating null byte)
rather than the beginning.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR stpcpy ()
+T} Thread safety MT-Safe
+.TE
.SH CONFORMING TO
This function was added to POSIX.1-2008.
Before that, it was not part of
-the C or POSIX.1 standards, nor customary on UNIX systems, but was not a
-GNU invention either.
-Perhaps it came from MS-DOS.
+the C or POSIX.1 standards, nor customary on UNIX systems.
+It first appeared at least as early as 1986,
+in the Lattice C AmigaDOS compiler,
+then in the GNU fileutils and GNU textutils in 1989,
+and in the GNU C library by 1992.
It is also present on the BSDs.
.SH BUGS
This function may overrun the buffer
to produce
.BR foobar ,
which it then prints.
-.in +4n
-.nf
-
+.PP
+.EX
#define _GNU_SOURCE
#include <string.h>
#include <stdio.h>
to = stpcpy(to, "bar");
printf("%s\\n", buffer);
}
-.fi
-.in
+.EE
.SH SEE ALSO
.BR bcopy (3),
.BR memccpy (3),