Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

BASENAME(3)              BSD Library Functions Manual              BASENAME(3)

     basename -- extract the base portion of a pathname

     #include <libgen.h>

     char *
     basename(char *path);

     The basename() function returns the last component from the pathname pointed to by path, deleting any
     trailing `/' characters.  If path consists entirely of `/' characters, a pointer to the string "/" is
     returned.  If path is a null pointer or the empty string, a pointer to the string "." is returned.

     On successful completion, basename() returns a pointer to the last component of path.

     If basename() fails, a null pointer is returned and the global variable errno is set to indicate the

     The following error codes may be set in errno:

     [ENAMETOOLONG]     The path component to be returned was larger than MAXPATHLEN.

     The basename() function returns a pointer to internal static storage space that will be overwritten by
     subsequent calls.  The function may modify the string pointed to by path.

     #include <libgen.h>

     char *
     basename(const char *path);

     In legacy mode, path will not be changed.

     basename(1), dirname(1), dirname(3), compat(5)

     The basename() function conforms to X/Open Portability Guide Issue 4, Version 2 (``XPG4.2'').

     The basename() function first appeared in OpenBSD 2.2 and FreeBSD 4.2.

     Todd C. Miller <>

BSD                             August 17, 1997                            BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.