gpt4 book ai didi

c++ - gcc arm 中的 strncpy 替换

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:24 25 4
gpt4 key购买 nike

strncpy() 是否在 arm 中没有适当的等价物,它将同时获取目标大小和要复制的源字符数,

strlcpy(char * /*dst*/, const char * /*src*/, size_t /*len*/);

所以在这里我们必须只使用 strlcpy() 并希望源字符串以 null 结尾?

MS 提供了一个完美的(至少看起来是 ;)):

StringCchCopyN(LPTSTR pszDest, size_t cchDest, LPCTSTR pszSrc, size_t cchSrc);

对于外行来说,strncpy() 是不安全的(为什么 strncpy 不安全] 1)。

最佳答案

你需要自己写

char *mystrncpy(char *dest, const char *src, size_t nbytes)
{
char *svd = dest;

if(nbytes)
{
dest[--nbytes] = 0;
while(*src && nbytes-- )
*dest++ = *src++;
}
return svd;
}

char *mystrncpy(char *dest, const char *src, size_t destsize, size_t srcsize)
{
memcpy(dest, src, destsize < srcsize ? destsize : srcsize);
dest[destsize -1] = 0;
return dest;
}

关于c++ - gcc arm 中的 strncpy 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934135/

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