Le 30/10/2018 à 13:38, Adam Borowski a écrit :
In that case, memcpy() is strictly better:
* faster:
   + no need to compare every byte
   + can copy longer strings a word at a time
* safer: you don't get the false impression it'd null-terminate the string
   for you


    Wether the function is able to group bytes in words is, in principle, an implementation issue. I thought, naively, that strncpy() also was able to group the bytes in words. But you're perfectly right, memcpy() does the job.

The two other methods are to use snprintf() or to copy the bytes one by
one in a loop.
Or copy word by word -- or even via a mem-to-mem DMA transfer some folks
want to add to new machines.  Or...

    [OT] DMA engines access physical memory, not virtual; therefore you need to issue syscalls to a dedicated driver, which implies some overhead. It could only be valuable for very long strings. If it's behind the MMU, then, IMHO, it should rather be called a memcpy instruction than DMA. But I'd really be interested in reading what people have in mind.

    Didier



_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to