[Coco] Fwd: MW-C Cross compiler bug - Solved
Gene Heskett
gheskett at wdtv.com
Sun Mar 9 17:55:52 EDT 2014
On Sunday 09 March 2014 17:42:49 Chris Osborn did opine:
> On Mar 9, 2014, at 2:01 PM, Gene Heskett wrote:
> > Are you saying that both of my copies (original and the "ANSI C"
> > versions of the K&R books are wrong?
>
> Page 250 of my ANSI K&R 2nd Edition book says:
>
> void *memcpy(s,ct,n) copy n characters from ct to s, and return
s.
> void *memmove(s,ct,n) same as memcpy except that it works even if the
> objects overlap.
>
> So yes, you're supposed to use memmove.
>
> The memcpy vs. memmove saga:
>
> http://www.win.tue.nl/~aeb/linux/misc/gcc-semibug.html
I was gonna pull my copy down and quote its entries for strcpy(s,ct) and
strncpy(s,ct,n) but I've apparently pulled it down for reference and laid
it someplace in this midden heap, hopefully not forever. Ah, just found
it, shove under the monitor right in front of me.
There is no discussion as to the gotchas in using strcpy vs memcpy in K&R
#2. At first glance they look interchangeable except strcpy would
apparently stop the copy at the EOL character since it expects no n
argument. strncpy(s,ct,n) would appear to be exactly the same as
memcpy(s,ct,n) in its effect. But does our clib even have the memcpy? I
haven't looked in yonks.
Cheers, Gene
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
More information about the Coco
mailing list