2013-07-08 :-(
_ 午後
1300 ガジェット
_ [NetBSD][memcpy][memmove][bcopy]NetBSD memcpy
memcopy の実装が libc/string に無い。マニュアルしかない。
ググったら src/common の下らしい。
CVS log for src/common/lib/libc/string/memcpy.c
/* $NetBSD: memcpy.c,v 1.1 2005/12/20 19:28:52 christos Exp $ */ #define MEMCOPY #include "bcopy.c"
続きは bcopy で
CVS log for src/common/lib/libc/string/bcopy.c
これが実体。速いけどデカい版と、小さいけど遅い版がある。
速いほうはメモリのブロック単位で処理する。
小さいほうは、お馴染みのこんなコード。K&R にもある実装なんだっけ。
/* * This is designed to be small, not fast. */ void * memcpy(void *s1, const void *s2, size_t n) { const char *f = s2; char *t = s1; while (n-- > 0) *t++ = *f++; return s1; }
[ツッコミを入れる]