xref: /freebsd-src/lib/libc/gen/basename.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1488d6e0cSXin LI.\" $OpenBSD: basename.3,v 1.20 2007/05/31 19:19:28 jmc Exp $
21250db81SDag-Erling Smørgrav.\"
31250db81SDag-Erling Smørgrav.\" Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
41250db81SDag-Erling Smørgrav.\"
5488d6e0cSXin LI.\" Permission to use, copy, modify, and distribute this software for any
6488d6e0cSXin LI.\" purpose with or without fee is hereby granted, provided that the above
7488d6e0cSXin LI.\" copyright notice and this permission notice appear in all copies.
81250db81SDag-Erling Smørgrav.\"
9488d6e0cSXin LI.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10488d6e0cSXin LI.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11488d6e0cSXin LI.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12488d6e0cSXin LI.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13488d6e0cSXin LI.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14488d6e0cSXin LI.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15488d6e0cSXin LI.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
161250db81SDag-Erling Smørgrav.\"
17*41a96628SEnji Cooper.Dd May 22, 2017
181250db81SDag-Erling Smørgrav.Dt BASENAME 3
191250db81SDag-Erling Smørgrav.Os
201250db81SDag-Erling Smørgrav.Sh NAME
211250db81SDag-Erling Smørgrav.Nm basename
221250db81SDag-Erling Smørgrav.Nd extract the base portion of a pathname
231250db81SDag-Erling Smørgrav.Sh SYNOPSIS
2432eef9aeSRuslan Ermilov.In libgen.h
251250db81SDag-Erling Smørgrav.Ft char *
26938809f9SEd Schouten.Fn basename "char *path"
271250db81SDag-Erling Smørgrav.Sh DESCRIPTION
281250db81SDag-Erling SmørgravThe
291250db81SDag-Erling Smørgrav.Fn basename
30488d6e0cSXin LIfunction returns the last component from the pathname pointed to by
315c564baeSRuslan Ermilov.Fa path ,
321250db81SDag-Erling Smørgravdeleting any trailing
331250db81SDag-Erling Smørgrav.Sq \&/
341250db81SDag-Erling Smørgravcharacters.
35*41a96628SEnji Cooper.Sh IMPLEMENTATION NOTES
36*41a96628SEnji CooperThis implementation of
37*41a96628SEnji Cooper.Fn basename
38*41a96628SEnji Cooperuses the buffer provided by the caller to store the resulting pathname
39*41a96628SEnji Coopercomponent.
40*41a96628SEnji CooperOther vendor implementations may return a pointer to internal storage
41*41a96628SEnji Cooperspace instead.
42*41a96628SEnji CooperThe advantage of the former approach is that it ensures thread-safety,
43*41a96628SEnji Cooperwhile also placing no upper limit on the supported length of the
44*41a96628SEnji Cooperpathname.
4534168b28SEd Schouten.Sh RETURN VALUES
461250db81SDag-Erling SmørgravIf
475c564baeSRuslan Ermilov.Fa path
481250db81SDag-Erling Smørgravconsists entirely of
491250db81SDag-Erling Smørgrav.Sq \&/
501250db81SDag-Erling Smørgravcharacters, a pointer to the string
511250db81SDag-Erling Smørgrav.Qq \&/
521250db81SDag-Erling Smørgravis returned.
531250db81SDag-Erling SmørgravIf
545c564baeSRuslan Ermilov.Fa path
551250db81SDag-Erling Smørgravis a null pointer or the empty string, a pointer to the string
561250db81SDag-Erling Smørgrav.Qq \&.
571250db81SDag-Erling Smørgravis returned.
5834168b28SEd SchoutenOtherwise,
5934168b28SEd Schoutenit returns a pointer to the last component of
605c564baeSRuslan Ermilov.Fa path .
611250db81SDag-Erling Smørgrav.Sh SEE ALSO
621250db81SDag-Erling Smørgrav.Xr basename 1 ,
631250db81SDag-Erling Smørgrav.Xr dirname 1 ,
641250db81SDag-Erling Smørgrav.Xr dirname 3
651250db81SDag-Erling Smørgrav.Sh STANDARDS
661250db81SDag-Erling SmørgravThe
671250db81SDag-Erling Smørgrav.Fn basename
681250db81SDag-Erling Smørgravfunction conforms to
691250db81SDag-Erling Smørgrav.St -xpg4.2 .
701250db81SDag-Erling Smørgrav.Sh HISTORY
711250db81SDag-Erling SmørgravThe
721250db81SDag-Erling Smørgrav.Fn basename
731250db81SDag-Erling Smørgravfunction first appeared in
746e6c8a08SDavid E. O'Brien.Ox 2.2
756e6c8a08SDavid E. O'Brienand
766e6c8a08SDavid E. O'Brien.Fx 4.2 .
77488d6e0cSXin LI.Pp
7834168b28SEd SchoutenIn
7934168b28SEd Schouten.Fx 12.0 ,
8034168b28SEd Schoutenthis function was reimplemented to store its result in the provided
8134168b28SEd Schouteninput buffer.
8234168b28SEd SchoutenThere is no longer any need to use the
8334168b28SEd Schouten.Fn basename_r
8434168b28SEd Schoutenfunction.
8534168b28SEd Schouten.Sh AUTHORS
8634168b28SEd Schouten.An Nuxi, the Netherlands
87