Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BASENAME(3)	       FreeBSD Library Functions Manual		   BASENAME(3)

NAME
     basename -- extract the base portion of a pathname

SYNOPSIS
     #include <libgen.h>

     char *
     basename(const char *path);

     char *
     basename_r(const char *path, char *bname);

DESCRIPTION
     The basename() function returns the last component	from the pathname
     pointed to	by path, deleting any trailing `/' characters.	If path	con-
     sists 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.

     The basename_r() variation	accepts	a buffer of at least MAXPATHLEN	bytes
     in	which to store the resulting component.

IMPLEMENTATION NOTES
     The basename() function returns a pointer to internal storage space allo-
     cated on the first	call that will be overwritten by subsequent calls.

     Other vendor implementations of basename()	may store their	result in the
     input buffer, making it safe to use in multithreaded applications.
     Future versions of	FreeBSD	will follow this approach as well.
     basename_r() will then become obsolete.

RETURN VALUES
     On	successful completion, basename() and basename_r() return pointers to
     the last component	of path.

     If	they fail, a null pointer is returned and the global variable errno is
     set to indicate the error.

ERRORS
     The following error codes may be set in errno:

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

SEE ALSO
     basename(1), dirname(1), dirname(3)

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

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

AUTHORS
     Todd C. Miller

CAVEATS
     basename()	returns	a pointer to internal static storage space that	will
     be	overwritten by subsequent calls.

     Other vendor implementations of basename()	may modify the contents	of the
     string passed to basename(); this should be taken into account when writ-
     ing code which calls this function	if portability is desired.

FreeBSD	11.1			 July 29, 2016			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | IMPLEMENTATION NOTES | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY | AUTHORS | CAVEATS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=basename&sektion=3&manpath=FreeBSD+11.1-RELEASE+and+Ports>

home | help