1.\" $OpenBSD: basename.3,v 1.24 2019/01/25 00:19:25 millert Exp $ 2.\" 3.\" Copyright (c) 1997 Todd C. Miller <millert@openbsd.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd $Mdocdate: January 25 2019 $ 18.Dt BASENAME 3 19.Os 20.Sh NAME 21.Nm basename 22.Nd extract the base portion of a pathname 23.Sh SYNOPSIS 24.In libgen.h 25.Ft char * 26.Fn basename "const char *path" 27.Sh DESCRIPTION 28The 29.Fn basename 30function returns the last component from the pathname pointed to by 31.Ar path , 32deleting any trailing 33.Sq \&/ 34characters. 35If 36.Ar path 37consists entirely of 38.Sq \&/ 39characters, a pointer to the string 40.Qq \&/ 41is returned. 42If 43.Ar path 44is a null pointer or the empty string, a pointer to the string 45.Qq \&. 46is returned. 47.Sh RETURN VALUES 48On successful completion, 49.Fn basename 50returns a pointer to the last component of 51.Ar path . 52.Pp 53If 54.Fn basename 55fails, a null pointer is returned and the global variable 56.Va errno 57is set to indicate the error. 58.Sh ERRORS 59The following error codes may be set in 60.Va errno : 61.Bl -tag -width Er 62.It Bq Er ENAMETOOLONG 63The path component to be returned was larger than 64.Dv PATH_MAX . 65.El 66.Sh SEE ALSO 67.Xr basename 1 , 68.Xr dirname 1 , 69.Xr dirname 3 70.Sh STANDARDS 71The 72.Fn basename 73function conforms to the X/Open System Interfaces option of the 74.St -p1003.1-2008 75specification. 76.Sh HISTORY 77The 78.Fn basename 79function first appeared in 80.Ox 2.2 . 81.Sh AUTHORS 82.An Todd C. Miller 83.Sh CAVEATS 84.Fn basename 85returns a pointer to internal static storage space that will be overwritten 86by subsequent calls. 87.Pp 88Other vendor implementations of 89.Fn basename 90may modify the contents of the string passed to 91.Fn basename ; 92this should be taken into account when writing code which calls this function 93if portability is desired. 94