BASENAME(3)

BASENAME(3) | Library Functions Manual | BASENAME(3)

# NAME

basename — return the last component of a pathname

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

#include <libgen.h>
char *
basename(char *path);

# DESCRIPTION

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 path consists entirely of ‘/’ characters, 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 “.”.

# RETURN VALUES

The basename() function returns a pointer to the final component of path.

# SEE ALSO

basename(1), dirname(3)

# STANDARDS

- X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”)
- IEEE Std 1003.1-2001 (“POSIX.1”)

# BUGS

If the length of the result is longer than `PATH_MAX` bytes (including the terminating nul), the result will be truncated.
The basename() function returns a pointer to static storage that may be overwritten by subsequent calls to basename(). This is not strictly a bug; it is explicitly allowed by IEEE Std 1003.1-2001 (“POSIX.1”).

May 10, 2008 | NetBSD 8.0