ポインタの解説で引用が多いstrcpy()関数ですが、開発元によって違いがあるようで、興味深かったのでまとめてみました。
strcpy.c - opensource.apple.com
strcpy.c
# import <string.h>
char *
strcpy(char *s1, const char *s2)
{
char *s = s1;
while ((*s++ = *s2++) != 0)
;
return (s1);
}
strcpy.c - GNU glibc
strcpy.c
# include <stddef.h>
# include <string.h>
# ifndef STRCPY
# define STRCPY strcpy
# endif
/* Copy SRC to DEST. */
char *
STRCPY (char *dest, const char *src)
{
return memcpy (dest, src, strlen (src) + 1);
}
libc_hidden_builtin_def (strcpy)
strcpy function in string.c - tovalds/linux
string.c
char *strcpy(char *dest, const char *src)
{
char *tmp = dest;
while ((*dest++ = *src++) != '\0')
/* nothing */;
return tmp;
}
EXPORT_SYMBOL(strcpy);