strndup
|
Definiert in Header
<string.h>
|
||
|
char
*
strndup
(
const
char
*
str,
size_t
size
)
;
|
(Dynamic Memory TR) | |
Gibt einen Zeiger auf eine nullterminierte Byte-Zeichenkette zurück, die Kopien von höchstens
size
Bytes aus der von
str
gezeigten Zeichenkette enthält. Wenn das Null-Terminierungszeichen in den ersten
size
Bytes nicht gefunden wird, wird es zur duplizierten Zeichenkette hinzugefügt.
Der zurückgegebene Zeiger muss an free übergeben werden, um einen Speicherverlust zu vermeiden.
Wenn ein Fehler auftritt, wird ein Nullzeiger zurückgegeben und errno kann gesetzt werden.
Wie alle Funktionen aus dem Dynamic Memory TR ist
strndup
nur garantiert verfügbar, wenn
__STDC_ALLOC_LIB__
durch die Implementierung definiert ist und wenn der Benutzer
__STDC_WANT_LIB_EXT2__
auf den Integer-Konstantenwert
1
setzt, bevor
string.h
eingebunden wird.
Inhaltsverzeichnis |
Parameter
| str | - | Zeiger auf die nullterminierte Byte-Zeichenkette, die dupliziert werden soll |
| size | - |
maximale Anzahl an Bytes, die von
str
kopiert werden sollen
|
Rückgabewert
Ein Zeiger auf die neu zugewiesene Zeichenkette oder ein Nullzeiger, falls ein Fehler aufgetreten ist.
Hinweise
Die Funktion ist identisch mit POSIX strndup , außer dass es erlaubt, aber nicht erforderlich ist, errno bei Fehlern zu setzen.
Beispiel
Ausgabe:
strndup("String", 2) == St
Siehe auch
|
(dynamic memory TR)
|
weist eine Kopie einer Zeichenkette zu
(Funktion) |
|
(C11)
|
kopiert eine bestimmte Anzahl von Zeichen von einer Zeichenkette in eine andere
(Funktion) |
|
weist Speicher zu
(Funktion) |