## Name basename - extract file name from a path ## Synopsis ```**c++ #include char* basename(char* path); ``` ## Description Given a file path, `basename()` returns that file's name. `basename()` works purely lexically, meaning it only manipulates the path as a string, and does not check if such a file actually exists. A call to `basename()` may reuse and modify the passed in `path` buffer. Do not expect it to have the same value after calling `basename()`. ## Return value `basename()` returns the file name as a string. This string may be allocated in static memory, or it may point to some part of the original `path` buffer. Do not `free()` the returned string, and do not `free()` the original `path` buffer while using the returned string. ## Examples ```c++ #include #include int main() { char path1[] = "/home/anon/ReadMe.md"; dbg() << basename(path1); // should be "ReadMe.md" char path2[] = "foo/bar/"; dbg() << basename(path2); // should be "bar" char path3[] = "foo"; dbg() << basename(path3); // should be "foo" char path4[] = "/"; dbg() << basename(path4); // should be "/" } ``` ## See also * [`dirname`(3)](dirname.md)