Scroll to navigation

STRDUP(3) Linux-Programmierhandbuch STRDUP(3)

BEZEICHNUNG

strdup, strndup, strdupa, strndupa - dupliziert eine Zeichenkette

ÜBERSICHT

#include <string.h>
 
char *strdup(const char *s);
 
char *strndup(const char *s, size_t n);
 
char *strdupa(const char *s);
 
char *strndupa(const char *s, size_t n);
 

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
 
strdup():
_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
 
|| /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
strndup():
Seit Glibc 2.10:
POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700
Bis Glibc 2.10:
_GNU_SOURCE
strdupa(), strndupa(): _GNU_SOURCE

BESCHREIBUNG

Die Funktion strdup() gibt einen Zeiger auf eine neue Zeichenkette zurück, die eine Kopie der Zeichenkette s ist. Der Speicher für die neue Zeichenkette wird mit malloc(3) reserviert und kann mit free(3) wieder freigegeben werden.
 
Die Funktion strndup() ist ähnlich, kopiert aber lediglich maximal n Bytes. Falls s länger als n Bytes ist, werden davon nur n kopiert und ein abschließendes Null-Byte ('\0') angehängt.
 
strdupa() und strndupa() sind ähnlich, reservieren den Speicher aber mittels alloca(3). Sie sind nur verfügbar, wenn die GNU-GCC-Suite verwendet wird und leiden unter den in alloca(3) beschriebenen Einschränkungen.

RÜCKGABEWERT

Die Funktion strdup() gibt einen Zeiger auf die kopierte Zeichenkette zurück oder NULL, wenn nicht genügend Speicher verfügbar war.

FEHLER

ENOMEM
nicht ausreichend Speicher verfügbar für die Bereitstellung der kopierten Zeichenkette

KONFORM ZU

strdup() ist konform zu SVr4, 4.3BSD, POSIX.1-2001. strndup() ist konform zu POSIX.1-2008. strdupa() und strndupa() sind GNU-Erweiterungen.

SIEHE AUCH

alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), wcsdup(3)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, 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> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> 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>.
10. Mai 2012 GNU