- no-fault memory-to-memory copy
#include <strings.h> int uucopy(const void *s1, void *s2, size_t n);
The uucopy() function copies n bytes from memory area s1 to s2. Copying between objects that overlap could corrupt one or both buffers.
Unlike bcopy(3C), uucopy() does not cause a segmentation fault if either the source or destination buffer includes an illegal address. Instead, it returns -1 and sets errno to EFAULT. This error could occur after the operation has partially completed, so the contents of the buffer at s2 are defined if the operation fails.
Upon successful completion, uucopy() returns 0. Otherwise, the function returns -1 and set errno to indicate the error.
The uucopy() function will fail if:
Either the s1 or s2 arguments points to an illegal address.
See attributes(5) for descriptions of the following attributes: