Date: Sun, 16 Mar 2003 18:17:52 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: phk@phk.freebsd.dk Cc: arch@FreeBSD.ORG Subject: Re: memcpy() with specified direction of copying ? Message-ID: <20030316.181752.16867058.imp@bsdimp.com> In-Reply-To: <9357.1047847012@critter.freebsd.dk> References: <9357.1047847012@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <9357.1047847012@critter.freebsd.dk> Poul-Henning Kamp <phk@phk.freebsd.dk> writes: : : Is there any standard which has provided an api for mandating the : direction of copying from a memcpy() like function ? : : As I read our man-page, there is no way to know of memcpy() copies : from the start and forward or from the end and backward through the : two areas. memcpy is not defined when overlapping strings are concerned. It is allowed to screw them up in whatever ways are a side effect of the fastest way to copy memory is. memmove is well defined here. It is slower, but guaranteed to work on overlapping strings. A string here is a hunk of memory, not a 'C' string. [#2] The memcpy function copies n characters from the object pointed to by s2 into the object pointed to by s1. If copying takes place between objects that overlap, the behavior is undefined. [#2] The memmove function copies n characters from the object pointed to by s2 into the object pointed to by s1. Copying takes place as if the n characters from the object pointed to by s2 are first copied into a temporary array of n characters that does not overlap the objects pointed to by s1 and s2, and then the n characters from the temporary array are copied into the object pointed to by s1. Warner To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030316.181752.16867058.imp>