C语言 strlcpy函数实现

strlcpy()函数是strcpy()函数的第三版,在strnpy()(第二版)的基础上增加了对源字符串的判断并且字符拷贝完成后增加’\0’,下面贴上linux实现方式:

函数定义如下:

size_t strlcpy(char *dest, const char *src, size_t size);

函数实现如下:

size_t Test_strlcpy(char *dest, const char *src, size_t size)
{
    size_t ret = strlen(src);

    if (size) {
        //这句判断大赞,起码有效防止源字符串的越界问题
        size_t len = (ret >= size) ? size - 1 : ret;
        memcpy(dest, src, len);
        dest[len] = '\0';
    }
    return ret;
}

你可能感兴趣的:(C语言,c语言的精髓)