The strdup function returns a pointer to a string that is an
exact duplicate of the string pointed to by s1. The malloc
function is used to allocate space for the new string. The strdup
function is provided for compatibility with existing systems.