gpt4 book ai didi

c - 我应该在 Mac OS X 上使用哪个 libc strcpy/strlcpy/strncpy?

转载 作者:行者123 更新时间:2023-11-30 14:50:24 29 4
gpt4 key购买 nike

我没有 OS X 开发环境。我没有 OS X 头文件。我不得不猜测我的一些图书馆电话。此时,我想使用的东西之一是 strlcpy()

  1. strlcpy() 是 OS X 上 libc 的一部分吗?

  2. 如果是,声明是什么,或者网络上哪里有头文件的副本?

  3. 如果不是,它是 OS X 上系统库的一部分吗?

  4. 如果没有,OS X 上是否还有另一个“安全”的 strcpy() 可用?

最佳答案

摘自运行 macOS High Sierra 10.13.3 的 Mac 上的 man strlcpy

STRLCPY(3) — BSD Library Functions Manual — STRLCPY(3)

NAME

strlcpy, strlcat -- size-bounded string copying and concatenation

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#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);

DESCRIPTION

The strlcpy() and strlcat() functions copy and concatenate strings with the same input parameters and output result as snprintf(3). They are designed to be safer, more consistent, and less error prone replacements for the easily misused functions strncpy(3) and strncat(3).

strlcpy() and strlcat() take the full size of the destination buffer and guarantee NUL-termination if there is room. Note that room for the NUL should be included in dstsize.

strlcpy() copies up to dstsize - 1 characters from the string src to dst, NUL-terminating the result if dstsize is not 0.

strlcat() appends string src to the end of dst. It will append at most dstsize - strlen(dst) - 1 characters. It will then NUL-terminate, unless dstsize is 0 or the original dst string was longer than dstsize (in practice this should not happen as it means that either dstsize is incorrect or that dst is not a proper string).

If the src and dst strings overlap, the behavior is undefined.

关于c - 我应该在 Mac OS X 上使用哪个 libc strcpy/strlcpy/strncpy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49023864/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com