From 3d08cd331c1adcf0d917392f7e527b3f00511748 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 24 May 2024 06:52:22 +0200 Subject: Merging upstream version 6.8. Signed-off-by: Daniel Baumann --- man3/strcpy.3 | 204 ---------------------------------------------------------- 1 file changed, 204 deletions(-) delete mode 100644 man3/strcpy.3 (limited to 'man3/strcpy.3') diff --git a/man3/strcpy.3 b/man3/strcpy.3 deleted file mode 100644 index fd0c335..0000000 --- a/man3/strcpy.3 +++ /dev/null @@ -1,204 +0,0 @@ -'\" t -.\" Copyright 2022 Alejandro Colomar -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.TH strcpy 3 2023-10-31 "Linux man-pages 6.7" -.SH NAME -stpcpy, strcpy, strcat \- copy or catenate a string -.SH LIBRARY -Standard C library -.RI ( libc ", " \-lc ) -.SH SYNOPSIS -.nf -.B #include -.P -.BI "char *stpcpy(char *restrict " dst ", const char *restrict " src ); -.BI "char *strcpy(char *restrict " dst ", const char *restrict " src ); -.BI "char *strcat(char *restrict " dst ", const char *restrict " src ); -.fi -.P -.RS -4 -Feature Test Macro Requirements for glibc (see -.BR feature_test_macros (7)): -.RE -.P -.BR stpcpy (): -.nf - Since glibc 2.10: - _POSIX_C_SOURCE >= 200809L - Before glibc 2.10: - _GNU_SOURCE -.fi -.SH DESCRIPTION -.TP -.BR stpcpy () -.TQ -.BR strcpy () -These functions copy the string pointed to by -.IR src , -into a string -at the buffer pointed to by -.IR dst . -The programmer is responsible for allocating a destination buffer large enough, -that is, -.IR "strlen(src) + 1" . -For the difference between the two functions, see RETURN VALUE. -.TP -.BR strcat () -This function catenates the string pointed to by -.IR src , -after the string pointed to by -.I dst -(overwriting its terminating null byte). -The programmer is responsible for allocating a destination buffer large enough, -that is, -.IR "strlen(dst) + strlen(src) + 1" . -.P -An implementation of these functions might be: -.P -.in +4n -.EX -char * -stpcpy(char *restrict dst, const char *restrict src) -{ - char *p; -\& - p = mempcpy(dst, src, strlen(src)); - *p = \[aq]\e0\[aq]; -\& - return p; -} -\& -char * -strcpy(char *restrict dst, const char *restrict src) -{ - stpcpy(dst, src); - return dst; -} -\& -char * -strcat(char *restrict dst, const char *restrict src) -{ - stpcpy(dst + strlen(dst), src); - return dst; -} -.EE -.in -.SH RETURN VALUE -.TP -.BR stpcpy () -This function returns -a pointer to the terminating null byte of the copied string. -.TP -.BR strcpy () -.TQ -.BR strcat () -These functions return -.IR dst . -.SH ATTRIBUTES -For an explanation of the terms used in this section, see -.BR attributes (7). -.TS -allbox; -lbx lb lb -l l l. -Interface Attribute Value -T{ -.na -.nh -.BR stpcpy (), -.BR strcpy (), -.BR strcat () -T} Thread safety MT-Safe -.TE -.SH STANDARDS -.TP -.BR stpcpy () -POSIX.1-2008. -.TP -.BR strcpy () -.TQ -.BR strcat () -C11, POSIX.1-2008. -.SH STANDARDS -.TP -.BR stpcpy () -POSIX.1-2008. -.TP -.BR strcpy () -.TQ -.BR strcat () -POSIX.1-2001, C89, SVr4, 4.3BSD. -.SH CAVEATS -The strings -.I src -and -.I dst -may not overlap. -.P -If the destination buffer is not large enough, -the behavior is undefined. -See -.B _FORTIFY_SOURCE -in -.BR feature_test_macros (7). -.P -.BR strcat () -can be very inefficient. -Read about -.UR https://www.joelonsoftware.com/\:2001/12/11/\:back\-to\-basics/ -Shlemiel the painter -.UE . -.SH EXAMPLES -.\" SRC BEGIN (strcpy.c) -.EX -#include -#include -#include -#include -\& -int -main(void) -{ - char *p; - char *buf1; - char *buf2; - size_t len, maxsize; -\& - maxsize = strlen("Hello ") + strlen("world") + strlen("!") + 1; - buf1 = malloc(sizeof(*buf1) * maxsize); - if (buf1 == NULL) - err(EXIT_FAILURE, "malloc()"); - buf2 = malloc(sizeof(*buf2) * maxsize); - if (buf2 == 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); -\& - strcpy(buf2, "Hello "); - strcat(buf2, "world"); - strcat(buf2, "!"); - len = strlen(buf2); -\& - printf("[len = %zu]: ", len); - puts(buf2); // "Hello world!" - free(buf2); -\& - exit(EXIT_SUCCESS); -} -.EE -.\" SRC END -.SH SEE ALSO -.BR strdup (3), -.BR string (3), -.BR wcscpy (3), -.BR string_copying (7) -- cgit v1.2.3