.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2022 Alejandro Colomar .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH strcpy 3 "20. Juli 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG stpcpy, strcpy, strcat \- eine Zeichenkette kopieren oder verketten .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBchar *stpcpy(char *restrict \fP\fIZiel\fP\fB, const char *restrict \fP\fIQuelle\fP\fB);\fP \fBchar *strcpy(char *restrict \fP\fIZiel\fP\fB, const char *restrict \fP\fIQuelle\fP\fB);\fP \fBchar *strcat(char *restrict \fP\fIZiel\fP\fB, const char *restrict \fP\fIQuelle\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP \fBstpcpy\fP(): .nf Seit Glibc 2.10: _POSIX_C_SOURCE >= 200809L Vor Glibc 2.10: _GNU_SOURCE .fi .SH BESCHREIBUNG .TP \fBstpcpy\fP() .TQ \fBstrcpy\fP() Diese Funktionen verketten die Zeichenkette, auf die \fIQuelle\fP zeigt, in eine Zeichenkette am Puffer, auf den \fIZiel\fP zeigt. Der Programmierer muss selbst dafür sorgen, dass der Zielpuffer groß genug ist, was \fIstrlen(Quelle) + 1\fP bedeutet. Lesen Sie in RÜCKGABEWERT über den Unterschied zwischen den beiden Funktionen. .TP \fBstrcat\fP() Diese Funktion verkettet die Zeichenkette, auf die \fIQuelle\fP zeigt, nach der Zeichenkette, auf die \fIZiel\fP zeigt, und zwar so, dass deren beendendes Null\-Byte überschrieben wird. Der Programmierer muss selbst dafür sorgen, dass der Zielpuffer groß genug ist, was \fIstrlen(Ziel) + strlen(Quelle) + 1\fP bedeutet. .PP Eine Implementierung dieser Funktionen könnte wie folgt aussehen: .PP .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 RÜCKGABEWERT .TP \fBstpcpy\fP() Diese Funktionen geben liefern Zeiger auf das beendende Null\-Byte der kopierten Zeichenkette zurück. .TP \fBstrcpy\fP() .TQ \fBstrcat\fP() Diese Funktionen liefern \fIZiel\fP zurück. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBstpcpy\fP(), \fBstrcpy\fP(), \fBstrcat\fP() T} Multithread\-Fähigkeit MT\-Sicher .TE .sp 1 .SH STANDARDS .TP \fBstpcpy\fP() POSIX.1\-2008. .TP \fBstrcpy\fP() .TQ \fBstrcat\fP() C11, POSIX.1\-2008. .SH STANDARDS .TP \fBstpcpy\fP() POSIX.1\-2008. .TP \fBstrcpy\fP() .TQ \fBstrcat\fP() POSIX.1\-2001, C89, SVr4, 4.3BSD. .SH WARNUNGEN Die Zeichenketten \fIQuelle\fP und \fIZiel\fP dürfen sich nicht überlappen. .PP Falls der Zielpuffer nicht groß genug ist, dann ist das Verhalten nicht definiert. Siehe \fB_FORTIFY_SOURCE\fP in \fBfeature_test_macros\fP(7). .PP \fBstrcat\fP() kann sehr ineffizient sein. Lesen Sie zum Thema .UR https://www.joelonsoftware.com/\:2001/12/11/\:back\-to\-basics/ Shlemiel the\ painter .UE . .SH BEISPIELE .\" 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 "SIEHE AUCH" \fBstrdup\fP(3), \fBstring\fP(3), \fBwcscpy\fP(3), \fBstring_copying\fP(7) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt , Dr. Tobias Quathamer , Helge Kreutzmann , Martin Eberhard Schauer und Mario Blättermann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .