c/string/byte/strcat

@1@ Appends a copy of the null-terminated byte string pointed to by to the end of the null-terminated byte string pointed to by. The character replaces the null terminator at the end of. The resulting byte string is null-terminated. @@The behavior is undefined if the destination array is not large enough for the contents of both and  and the terminating null character. The behavior is undefined if the strings overlap. The behavior is undefined if either 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 (from the last character written to ) 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
 * there is no null terminator in the first bytes of
 * truncation would occur (the available space at the end of would not fit every character, including the null terminator, of )
 * 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).