strndup
|
定义于头文件
<string.h>
|
||
|
char
*
strndup
(
const
char
*
str,
size_t
size
)
;
|
(动态内存 TR) | |
返回指向以空字符结尾的字节字符串的指针,该字符串包含从
str
指向的字符串中复制的至多
size
个字节。若在前
size
个字节中未遇到空终止符,则会在复制的字符串末尾添加空终止符。
返回的指针必须传递给 free 以避免内存泄漏。
若发生错误,将返回空指针并可能设置 errno 。
与动态内存技术报告中的所有函数一样,只有当实现定义了
__STDC_ALLOC_LIB__
,且用户在包含
string.h
头文件之前将
__STDC_WANT_LIB_EXT2__
定义为整型常量
1
时,才保证
strndup
函数可用。
目录 |
参数
| str | - | 指向要复制的以空字符结尾的字节字符串的指针 |
| size | - |
从
str
复制的最大字节数
|
返回值
指向新分配字符串的指针,若出现错误则返回空指针。
注释
该函数与 POSIX strndup 完全相同,不同之处在于它允许(但非强制要求)在出错时设置 errno 。
示例
输出:
strndup("String", 2) == St
参见
|
(动态内存 TR)
|
分配字符串的副本
(函数) |
|
(C11)
|
将指定数量的字符从一个字符串复制到另一个字符串
(函数) |
|
分配内存
(函数) |