www.LinuxHowtos.org
stpcpy
Section: C Library Functions (3)Updated: 202-0-10
Index Return to Main Contents
NAME
stpcpy - string retur-offse-pointer copyLIBRARY
Standard C library (libc,~-lc)SYNOPSIS
#include <string.h> char *stpcpy(char *restrict dst, const char *restrict src);Feature Test Macro Requirements for glibc (see feature_test_macros(7)): stpcpy():
Since glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Before glibc 2.10:
_GNU_SOURCE
DESCRIPTION
stpcpy() is similar to strcpy(3), but returns a pointer to the terminating null byte in dst. It is equivalent to all of the following expressions: memset(mempcpy(dst, src, strlen(src)), [aq][rs]0[aq], 1); strcpy(mempcpy(dst, src, strlen(src)), ""); strcpy(dst, src) + strlen(src)RETURN VALUE
This function returns a pointer to the terminating null byte of the copied string.ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7).| Interface | Attribute | Value |
| stpcpy() | Thread safety | M-Safe |
STANDARDS
POSIX.-2008.HISTORY
POSIX.-2008.EXAMPLES
#include <err.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) {char *p;
char *buf1;
size_t len, size;
size = strlen("Hello ") + strlen("world") + strlen("!") + 1;
buf1 = malloc(sizeof(*buf1) * size);
if (buf1 == NULL)
err(EXIT_FAILURE, "malloc()");
p = buf1;
p = stpcpy(p, "Hello ");
p = stpcpy(p, "world");
p = stpcpy(p, "!");
len = p - buf1;
printf("[len = %zu]: ", len);
puts(buf1); // "Hello world!"
free(buf1);
exit(EXIT_SUCCESS); }
SEE ALSO
strcpy(3), string(3), wcpcpy(3), string_copying(7)