strdup, strndup, strdupa, strndupa - dupliziert eine Zeichenkette
Standard-C-Bibliothek (
libc,
-lc)
#include <string.h>
char *strdup(const char *s);
char *strndup(const char s[.n], size_t n);
char *strdupa(const char *s);
char *strndupa(const char s[.n], size_t n);
strdup():
_XOPEN_SOURCE >= 500
|| /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
strndup():
Seit Glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Vor Glibc 2.10:
_GNU_SOURCE
strdupa(),
strndupa():
_GNU_SOURCE
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 maximal
n
Bytes. Falls
s länger als
n Bytes ist, werden davon nur
n kopiert und ein abschließendes Nullbyte (»\0«)
angehängt.
strdupa() und
strndupa() sind ähnlich, reservieren den
Speicher aber mittels
alloca(3).
Bei Erfolg gibt die Funktion
strdup() einen Zeiger auf die kopierte
Zeichenkette zurück oder NULL, wenn nicht genügend Speicher
verfügbar war, wobei
errno den Fehler anzeigt.
- ENOMEM
- nicht ausreichend Speicher für die Bereitstellung
der kopierten Zeichenkette verfügbar
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
strdup(), strndup(), strdupa(),
strndupa() |
Multithread-Fähigkeit |
MT-Safe |
strdup() ist konform zu SVr4, 4.3BSD, POSIX.1-2001.
strndup() ist
konform zu POSIX.1-2008.
strdupa() und
strndupa() sind
GNU-Erweiterungen.
alloca(3),
calloc(3),
free(3),
malloc(3),
realloc(3),
string(3),
wcsdup(3)
Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt
<
[email protected]>, Martin Eberhard Schauer
<
[email protected]> und Mario Blättermann
<
[email protected]> 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 die
Mailingliste
der Übersetzer