char *strncat(char *s1,
              const char *s2,
              size_t n);

strncat appends not more than n characters from the array pointed to by s2 to the end of the string pointed to by s1. A null character in s1 and characters that follow it are not appended. The initial character of s2 overwrites the null character at the end of s1. A terminating null character is always appended to the result. The behavior of strncat is undefined if copying takes place between objects that overlap.

strncat returns the value of s1.