1*10d565efSmrg /* bcopy -- copy memory regions of arbitary length 2*10d565efSmrg 3*10d565efSmrg @deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length}) 4*10d565efSmrg 5*10d565efSmrg Copies @var{length} bytes from memory region @var{in} to region 6*10d565efSmrg @var{out}. The use of @code{bcopy} is deprecated in new programs. 7*10d565efSmrg 8*10d565efSmrg @end deftypefn 9*10d565efSmrg 10*10d565efSmrg */ 11*10d565efSmrg 12*10d565efSmrg #include <stddef.h> 13*10d565efSmrg 14*10d565efSmrg void bcopy(const void * src,void * dest,size_t len)15*10d565efSmrgbcopy (const void *src, void *dest, size_t len) 16*10d565efSmrg { 17*10d565efSmrg if (dest < src) 18*10d565efSmrg { 19*10d565efSmrg const char *firsts = (const char *) src; 20*10d565efSmrg char *firstd = (char *) dest; 21*10d565efSmrg while (len--) 22*10d565efSmrg *firstd++ = *firsts++; 23*10d565efSmrg } 24*10d565efSmrg else 25*10d565efSmrg { 26*10d565efSmrg const char *lasts = (const char *)src + (len-1); 27*10d565efSmrg char *lastd = (char *)dest + (len-1); 28*10d565efSmrg while (len--) 29*10d565efSmrg *lastd-- = *lasts--; 30*10d565efSmrg } 31*10d565efSmrg } 32