The basename() function takes the pathname pointed to by path and returns a pointer to the final component of the pathname, deleting any trailing '/' characters.
If the string consists entirely of the '/' character, basename() returns a pointer to the string "/" .
If path is a null pointer or points to an empty string, basename() returns a pointer to the string "." .
The basename() function may modify the string pointed to by path, and may return a pointer to static storage that may then be overwritten by a subsequent
call to basename().
When compiling multithreaded applications, the _REENTRANT flag must be defined on the compile line. This flag should only be used in multithreaded applications.