table of contents
other versions
- jessie 1.8-1
- stretch 1.22-1
- testing 2.11-1
- stretch-backports 2.11-1~bpo9+2
- unstable 2.11-1
other sections
STRCAT(3) | Linux-Programmierhandbuch | STRCAT(3) |
BEZEICHNUNG¶
strcat, strncat - hängt zwei Zeichenketten aneinanderÜBERSICHT¶
#include <string.h> char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, size_t n);
BESCHREIBUNG¶
Die Funktion strcat() hängt die Zeichenkette src an die Zeichenkette dest an, überschreibt dabei das Null-Byte ('\0') am Ende von dest und fügt ein neues abschließendes Null-Byte an. Die Zeichenketten dürfen nicht überlappen und dest muss genügend Platz für das Ergebnis haben. Falls dest nicht groß genug ist, ist das Programmverhalten unvorhersehbar; Pufferüberläufe sind ein beliebter Angriffspfad für sichere Programme. Die Funktion strncat() ist ähnlich, aber sie- *
- bearbeitet höchstens n Bytes von src; und
- *
- src muss nicht mit einem Null-Byte abgeschlossen sein, falls es n oder mehr Bytes enthält.
char* strncat(char *Ziel, const char *Quelle, size_t n) { size_t Ziel_len = strlen(Ziel); size_t i; for (i = 0 ; i < n && Quelle[i] != '\0' ; i++) Ziel[Ziel_len + i] = Quelle[i]; Ziel[Ziel_len + i] = '\0'; return Ziel; }
RÜCKGABEWERT¶
Die Funktionen strcat() und strncat() geben einen Zeiger auf die resultierende Zeichenkette dest zurück.ATTRIBUTE¶
Multithreading (siehe pthreads(7))¶
Die Funktionen strcat() und strncat() sind multithread-fähig.KONFORM ZU¶
SVr4, 4.3BSD, C89, C99.ANMERKUNGEN¶
Einige Systeme (die BSDs, Solaris und andere) stellen die folgende Funktion bereit:size_t strlcat(char *dest, const char *src, size_t size); Diese Funktion fügt die null-terminierte Zeichenkette src an die Zeichenkette dest an, kopiert dabei höchstens size-strlen(dest)-1 Zeichen von src und fügt dem Ergebnis ein Null-Byte an, wenn nicht size kleiner als strlen(dest) ist. Diese Funktion behebt das Pufferüberlauf-Problem von strcat(), aber der Aufrufende muss sich noch mit der Möglichkeit eines Datenverlusts befassen, wenn size zu klein ist. Die Funktion gibt die Länge der Zeichenkette zurück, die strlcat() zu erzeugen versuchte; wenn der Rückgabewert größer als oder gleich size ist, kam es zu Datenverlust. Wenn Datenverlust von Bedeutung ist, muss der Aufrufende entweder vor dem Aufruf die Argumente oder nach dem Aufruf den Rückgabewert prüfen. strlcat() ist nicht in Glibc vorhanden und nicht von POSIX standardisiert, sondern ist unter Linux über die Bibliothek libbsd verfügbar.
SIEHE AUCH¶
bcopy(3), memccpy(3), memcpy(3), strcpy(3), string(3), strncpy(3), wcscat(3), wcsncat(3)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.74 des Projekts Linux- man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt <fw@math.uni-sb.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.20. Januar 2014 | GNU |