strndup
|
Definido en el encabezado
<string.h>
|
||
|
char
*
strndup
(
const
char
*
str,
size_t
size
)
;
|
(TR de memoria dinámica) | |
Retorna un puntero a una cadena de bytes terminada en nulo, que contiene copias de como máximo
size
bytes desde la cadena apuntada por
str
. Si el terminador nulo no se encuentra en los primeros
size
bytes, se añade a la cadena duplicada.
El puntero devuelto debe pasarse a free para evitar una fuga de memoria.
Si ocurre un error, se devuelve un puntero nulo y errno puede establecerse.
Como todas las funciones del TR de Memoria Dinámica,
strndup
solo se garantiza que esté disponible si
__STDC_ALLOC_LIB__
está definido por la implementación y si el usuario define
__STDC_WANT_LIB_EXT2__
a la constante entera
1
antes de incluir
string.h
.
Contenidos |
Parámetros
| str | - | puntero a la cadena de bytes terminada en nulo a duplicar |
| size | - |
número máximo de bytes a copiar desde
str
|
Valor de retorno
Un puntero a la cadena recién asignada, o un puntero nulo si ocurrió un error.
Notas
La función es idéntica a la POSIX strndup excepto que está permitido, pero no requerido, establecer errno en caso de error.
Ejemplo
Salida:
strndup("String", 2) == St
Véase también
|
(dynamic memory TR)
|
asignar una copia de una cadena
(función) |
|
(C11)
|
copia cierta cantidad de caracteres de una cadena a otra
(función) |
|
asigna memoria
(función) |