c/string/byte/memccpy

Copies bytes from the object pointed to by to the object pointed to by, stopping after any of the next two conditions are satisfied:
 * bytes are copied
 * the byte is found (and copied).

The and  objects are interpreted as arrays of.

The behavior is undefined if any condition is met:
 * access occurs beyond the end of the array;
 * the objects overlap (which is a violation of the contract)
 * either or  is an invalid or null pointer

Return value
If the byte was found  returns a pointer to the next byte in  after, otherwise returns null pointer.