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