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