strcpy does not verify the size of the receiving
field.
If the receiving field is shorter than the source
string, the copy will overrun the receiving field,
possibly causing errors.
strdup allocates new memory for the receiving field.
strncpy copies Count characters.
If the length of the Source string is greater
than Count, no NULL ('\n') character is appended to
the receiving field.
If the length of the Source string is less
than Count, the rest of the
receiving field is filled with
NULL ('\n') characters.