读书人

求strlcpy strlcat函数源代码,该如何解

发布时间: 2012-02-20 21:18:24 作者: rapoo

求strlcpy strlcat函数源代码
size_t strlcpy (char *dst, const char *src, size_t size);
size_t strlcat (char *dst, const char *src, size_t size);
函数源代码,谁有贴上来研究下,谢谢



[解决办法]

C/C++ code
size_tstrlcpy (char *dst, const char *src, size_t dst_sz){    size_t n;    for (n = 0; n < dst_sz; n++) {    if ((*dst++ = *src++) == '\0')        break;    }    if (n < dst_sz)    return n;    if (n > 0)    *(dst - 1) = '\0';    return n + strlen (src);}size_tstrlcat (char *dst, const char *src, size_t dst_sz){    size_t len = strlen(dst);    if (dst_sz < len)    /* the total size of dst is less than the string it contains;           this could be considered bad input, but we might as well           handle it */    return len + strlen(src);    return len + strlcpy (dst + len, src, dst_sz - len);} 

读书人网 >C++

热点推荐