strdup(3) Library Functions Manual strdup(3)

strdup, strndup, strdupa, strndupa - dupliziert eine Zeichenkette

Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

#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);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

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.

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-Sicher

POSIX.1-2008.
GNU.

SVr4, 4.3BSD-Reno, POSIX.1-2001.
POSIX.1-2008.
GNU.

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

Ü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 die Mailingliste der Übersetzer.

31. Oktober 2023 Linux man-pages 6.06