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;
}
しかし、ここで glibc の実装を見ていると、なぜ大きすぎて複雑なのか疑問に思います。
「 time」コマンドを使用して実行時間をテストしました。どちらの機能もほぼ同じように動作します。
誰かが glibc strncpy()と my_strncpy() に欠けているものに関する知識を共有できますか?