strndup
| Definiert in Header <string.h> |
||
| char *strndup( const char *str, size_t size ); |
(Dynamischer Speicher-TR) | |
Gibt einen Zeiger auf eine nullterminierte Byte-Zeichenkette zurück, die Kopien von höchstens size Bytes aus der von str referenzierten Zeichenkette enthält. Wenn das Nullzeichen nicht in den ersten size Bytes angetroffen wird, wird es der duplizierten Zeichenkette hinzugefügt.
Der zurückgegebene Zeiger muss an free übergeben werden, um Speicherlecks zu vermeiden.
Bei einem Fehler wird ein Nullzeiger zurückgegeben und errno kann gesetzt werden.
Wie alle Funktionen aus dem Dynamic Memory TR ist strndup nur dann garantiert verfügbar, wenn __STDC_ALLOC_LIB__ von der Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT2__ vor dem Einbinden von string.h auf die ganzzahlige Konstante 1 setzt.
Inhalt |
[bearbeiten] Parameter
| str | - | Zeiger auf die nullterminierte Byte-Zeichenkette, die dupliziert werden soll |
| size | - | maximale Anzahl von Bytes, die von str kopiert werden sollen |
[bearbeiten] Rückgabewert
Ein Zeiger auf die neu zugewiesene Zeichenkette oder ein Nullzeiger, wenn ein Fehler aufgetreten ist.
[bearbeiten] Hinweise
Die Funktion ist identisch mit der POSIX strndup, mit der Ausnahme, dass sie bei einem Fehler errno setzen darf, aber nicht muss.
[bearbeiten] Beispiel
Ausgabe
strndup("String", 2) == St[bearbeiten] Siehe auch
| (Dynamischer Speicher-TR) |
kopiert einen String, indem Speicher zugewiesen wird (Funktion) |
| (C11) |
kopiert eine bestimmte Anzahl von Zeichen von einem String in einen anderen (Funktion) |
| alloziert Speicher (Funktion) |