strncpy does not append a terminating
0 if the source buffer if it’s too long to fit into the destination buffer.
strncat requires the programmer to keep track of how much space there is left in the destination buffer. The size parameter of
strncat does not include the terminating null character, where as the size of
strncpy. The both take the destination buffer size as the size parameter and they both always append a terminating
0 to the destination if the size of the destination buffer is greater than zero. They are available under the BSD license which means that they are freely available for both open source and commercial usage.