语法
#include <string.h> char *strdup(const char *s); char *strndup(const char *s, size_t n); char *strdupa(const char *s); char *strndupa(const char *s, size_t n);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
strdup():
- _XOPEN_SOURCE>= 500 || / *自glibc 2.12起:* / _POSIX_C_SOURCE>= 200809L || / * Glibc版本
strndup():
- Since glibc 2.10:
- _POSIX_C_SOURCE>= 200809L
- Before glibc 2.10:
- _GNU_SOURCE
strdupa(),strndupa():_ GNU_SOURCE
遵循规范
strdup()符合SVr4、4.3BSD,POSIX.1-2001。 strndup()符合POSIX.1-2008。 strdupa()和strndupa()是GNU扩展。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
strdup(),strndup(),strdupa(), strndupa() | Thread safety | MT-Safe |
名称
strdup,strndup,strdupa,strndupa-复制字符串
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。
错误说明
- ENOMEM
- 没有足够的内存来分配重复的字符串。
Linux程序员手册 第3部分
更新日期: 2019-03-06
返回值
成功后,strdup()函数将返回指向重复字符串的指针。如果没有足够的可用内存,它将返回NULL,并设置errno来指示错误原因。
日期:2019-08-20 18:01:25 来源:oir作者:oir