c/string/byte/strcpy

@1@ Copies the null-terminated byte string pointed to by, including the null terminator, to the character array whose first element is pointed to by. @@The behavior is undefined if the array is not large enough. The behavior is undefined if the strings overlap. The behavior is undefined if either is not a pointer to a character array or  is not a pointer to a null-terminated byte string. @2@ Same as, except that it may clobber the rest of the destination array with unspecified values and that the following errors are detected at runtime and call the currently installed constraint handler function:
 * or is a null pointer
 * is zero or greater than rsize_max
 * is less or equal ; in other words, truncation would occur
 * overlap would occur between the source and the destination strings

@@The behavior is undefined if the size of the character array pointed to by <=  < ; in other words, an erroneous value of  does not expose the impending buffer overflow.

Return value
@1@ returns a copy of @2@ returns zero on success, returns non-zero on error. Also, on error, writes zero to (unless  is a null pointer or  is zero or greater than rsize_max).