strndup
|
Défini dans l'en-tête
<string.h>
|
||
|
char
*
strndup
(
const
char
*
str,
size_t
size
)
;
|
(TR mémoire dynamique) | |
Retourne un pointeur vers une chaîne d'octets terminée par un caractère nul, qui contient des copies d'au plus
size
octets de la chaîne pointée par
str
. Si le terminateur nul n'est pas rencontré dans les premiers
size
octets, il est ajouté à la chaîne dupliquée.
Le pointeur retourné doit être passé à free pour éviter une fuite de mémoire.
Si une erreur se produit, un pointeur nul est retourné et errno peut être défini.
Comme toutes les fonctions du TR sur la mémoire dynamique,
strndup
n'est garantie d'être disponible que si
__STDC_ALLOC_LIB__
est défini par l'implémentation et si l'utilisateur définit
__STDC_WANT_LIB_EXT2__
à la constante entière
1
avant d'inclure
string.h
.
Table des matières |
Paramètres
| str | - | pointeur vers la chaîne d'octets terminée par un caractère nul à dupliquer |
| size | - |
nombre maximum d'octets à copier depuis
str
|
Valeur de retour
Un pointeur vers la chaîne nouvellement allouée, ou un pointeur nul si une erreur s'est produite.
Notes
La fonction est identique à la POSIX strndup sauf qu'elle est autorisée, mais pas obligée, à définir errno en cas d'erreur.
Exemple
Sortie :
strndup("String", 2) == St
Voir aussi
|
(dynamic memory TR)
|
alloue une copie d'une chaîne de caractères
(fonction) |
|
(C11)
|
copie un certain nombre de caractères d'une chaîne à une autre
(fonction) |
|
alloue de la mémoire
(fonction) |