The function will copy not more than n bytes (bytes that follow a NUL character are not copied) from the array pointed to by s1 to the array pointed to by s2. And it will return s2. If the array pointed to by s1 is a string that is shorter than n bytes, NUL characters willl be appended to the copy in the array pointed to by s2, until n bytes in all are written.