小编Siv*_*dhy的帖子

在glibc中strncpy实现过于复杂

我正在尝试理解string.h函数.这是我自己的strncpy()实现

char * my_strncpy(char *dst, const char* src, int n)
{
    char *orig = dst;
    const char *hold = src;
    int count = 0, remain = 0;
    while(*(hold++))
            count++;
    if ( n > count )
    {
            remain = n - count;
            n = count;
    }
    while(n--)
            *dst++ = *src++;
    while(remain--)
            *dst++ = '\0';
    return orig;
}
Run Code Online (Sandbox Code Playgroud)

但是在看这里的 glibc实现时,我想知道为什么它太大而复杂.

我使用" time "命令测试了执行时间.两个功能几乎相同.
有人可以分享关于glibc strncpy()的知识以及我在my_strncpy()中缺少的知识.

c glibc strncpy

5
推荐指数
1
解决办法
423
查看次数

标签 统计

c ×1

glibc ×1

strncpy ×1