strndup
|
Определено в заголовочном файле
<string.h>
|
||
|
char
*
strndup
(
const
char
*
str,
size_t
size
)
;
|
(динамическая память TR) | |
Возвращает указатель на байтовую строку, завершающуюся нулём, которая содержит копии не более
size
байт из строки, на которую указывает
str
. Если нулевой терминатор не встречается в первых
size
байтах, он добавляется в дублированную строку.
Возвращаемый указатель должен быть передан в free во избежание утечки памяти.
Если возникает ошибка, возвращается нулевой указатель и errno может быть установлен.
Как и все функции из Dynamic Memory TR,
strndup
гарантированно доступна только в случае, если реализация определяет
__STDC_ALLOC_LIB__
и если пользователь определяет
__STDC_WANT_LIB_EXT2__
как целочисленную константу
1
перед включением заголовка
string.h
.
Содержание |
Параметры
| str | - | указатель на нуль-терминированную строку байтов для дублирования |
| size | - |
максимальное количество байтов для копирования из
str
|
Возвращаемое значение
Указатель на вновь выделенную строку или нулевой указатель, если произошла ошибка.
Примечания
Функция идентична POSIX strndup за исключением того, что она может, но не обязана устанавливать errno при ошибке.
Пример
Вывод:
strndup("String", 2) == St
Смотрите также
|
(dynamic memory TR)
|
выделить копию строки
(функция) |
|
(C11)
|
копирует определенное количество символов из одной строки в другую
(функция) |
|
выделяет память
(функция) |