我没有OS X开发环境。我没有OS X头文件。我不得不猜测我的一些图书馆电话。在这一点上,我想要使用的其中一件事是strlcpy()
。
strlcpy()
是OS X上的libc的一部分吗?strcpy()
?来自运行macOS High Sierra 10.13.3的Mac上的man strlcpy
的摘录。
STRLCPY(3) - BSD库函数手册 - STRLCPY(3)
name
strlcpy,strlcat - 大小有界的字符串复制和连接
图书馆
标准C库(libc,-lc)
概要
#include <string.h> size_t strlcpy(char * restrict dst, const char * restrict src, size_t dstsize); size_t strlcat(char * restrict dst, const char * restrict src, size_t dstsize);
描述
strlcpy()和strlcat()函数使用相同的输入参数复制和连接字符串,并将结果输出为snprintf(3)。它们被设计为更容易被误用的函数strncpy(3)和strncat(3)更安全,更一致,更容易出错。
strlcpy()和strlcat()获取目标缓冲区的完整大小,并保证在有空间的情况下终止NUL。请注意,NUL的空间应包含在dstsize中。
strlcpy()复制到dstsize - 从字符串src到dst的1个字符,NUL-如果dstsize不为0则终止结果。
strlcat()将字符串src追加到dst的末尾。它最多会附加dstsize - strlen(dst) - 1个字符。然后NUL终止,除非dstsize为0或原始dst字符串长于dstsize(实际上这不应该发生,因为这意味着dstsize不正确或者dst不是正确的字符串)。
如果src和dst字符串重叠,则行为未定义。