The basename() function shall take the pathname pointed to by path
and return a pointer to the final component of the pathname, deleting any
trailing '/' characters.
If the string consists entirely of the '/' character, basename()
shall return a pointer to the string "/" . If the string is
exactly "//" , it is implementation-defined whether
'/' or "//" is returned.
If path is a null pointer or points to an empty string, basename()
shall return 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().
The basename() function need not be reentrant. A function that is not
required to be reentrant is not required to be thread-safe.
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html