xref: /minix3/lib/libc/gen/basename.3 (revision 2fe8fb192fe7e8720e3e7a77f928da545e872a6a)
1*2fe8fb19SBen Gras.\"	$NetBSD: basename.3,v 1.14 2008/05/10 22:39:40 christos Exp $
2*2fe8fb19SBen Gras.\"
3*2fe8fb19SBen Gras.\" Copyright (c) 1997, 2002 The NetBSD Foundation, Inc.
4*2fe8fb19SBen Gras.\" All rights reserved.
5*2fe8fb19SBen Gras.\"
6*2fe8fb19SBen Gras.\" This code is derived from software contributed to The NetBSD Foundation
7*2fe8fb19SBen Gras.\" by Klaus Klein and Jason R. Thorpe.
8*2fe8fb19SBen Gras.\"
9*2fe8fb19SBen Gras.\" Redistribution and use in source and binary forms, with or without
10*2fe8fb19SBen Gras.\" modification, are permitted provided that the following conditions
11*2fe8fb19SBen Gras.\" are met:
12*2fe8fb19SBen Gras.\" 1. Redistributions of source code must retain the above copyright
13*2fe8fb19SBen Gras.\"    notice, this list of conditions and the following disclaimer.
14*2fe8fb19SBen Gras.\" 2. Redistributions in binary form must reproduce the above copyright
15*2fe8fb19SBen Gras.\"    notice, this list of conditions and the following disclaimer in the
16*2fe8fb19SBen Gras.\"    documentation and/or other materials provided with the distribution.
17*2fe8fb19SBen Gras.\"
18*2fe8fb19SBen Gras.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19*2fe8fb19SBen Gras.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20*2fe8fb19SBen Gras.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21*2fe8fb19SBen Gras.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22*2fe8fb19SBen Gras.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23*2fe8fb19SBen Gras.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24*2fe8fb19SBen Gras.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25*2fe8fb19SBen Gras.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26*2fe8fb19SBen Gras.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27*2fe8fb19SBen Gras.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28*2fe8fb19SBen Gras.\" POSSIBILITY OF SUCH DAMAGE.
29*2fe8fb19SBen Gras.\"
30*2fe8fb19SBen Gras.Dd May 10, 2008
31*2fe8fb19SBen Gras.Dt BASENAME 3
32*2fe8fb19SBen Gras.Os
33*2fe8fb19SBen Gras.Sh NAME
34*2fe8fb19SBen Gras.Nm basename
35*2fe8fb19SBen Gras.Nd return the last component of a pathname
36*2fe8fb19SBen Gras.Sh LIBRARY
37*2fe8fb19SBen Gras.Lb libc
38*2fe8fb19SBen Gras.Sh SYNOPSIS
39*2fe8fb19SBen Gras.In libgen.h
40*2fe8fb19SBen Gras.Ft char *
41*2fe8fb19SBen Gras.Fn basename "char *path"
42*2fe8fb19SBen Gras.Sh DESCRIPTION
43*2fe8fb19SBen GrasThe
44*2fe8fb19SBen Gras.Fn basename
45*2fe8fb19SBen Grasfunction takes the pathname pointed to by
46*2fe8fb19SBen Gras.Ar path
47*2fe8fb19SBen Grasand returns a pointer to the final component of the pathname,
48*2fe8fb19SBen Grasdeleting any trailing
49*2fe8fb19SBen Gras.Sq /
50*2fe8fb19SBen Grascharacters.
51*2fe8fb19SBen Gras.Pp
52*2fe8fb19SBen GrasIf
53*2fe8fb19SBen Gras.Ar path
54*2fe8fb19SBen Grasconsists entirely of
55*2fe8fb19SBen Gras.Sq /
56*2fe8fb19SBen Grascharacters,
57*2fe8fb19SBen Gras.Fn basename
58*2fe8fb19SBen Grasreturns a pointer to the string
59*2fe8fb19SBen Gras.Dq / .
60*2fe8fb19SBen Gras.Pp
61*2fe8fb19SBen GrasIf
62*2fe8fb19SBen Gras.Ar path
63*2fe8fb19SBen Grasis a null pointer or points to an empty string,
64*2fe8fb19SBen Gras.Fn basename
65*2fe8fb19SBen Grasreturns a pointer to the string
66*2fe8fb19SBen Gras.Dq \&. .
67*2fe8fb19SBen Gras.Sh RETURN VALUES
68*2fe8fb19SBen GrasThe
69*2fe8fb19SBen Gras.Fn basename
70*2fe8fb19SBen Grasfunction returns a pointer to the final component of
71*2fe8fb19SBen Gras.Ar path .
72*2fe8fb19SBen Gras.Sh SEE ALSO
73*2fe8fb19SBen Gras.Xr basename 1 ,
74*2fe8fb19SBen Gras.Xr dirname 3
75*2fe8fb19SBen Gras.Sh STANDARDS
76*2fe8fb19SBen Gras.Bl -bullet -compact
77*2fe8fb19SBen Gras.It
78*2fe8fb19SBen Gras.St -xpg4.2
79*2fe8fb19SBen Gras.It
80*2fe8fb19SBen Gras.St -p1003.1-2001
81*2fe8fb19SBen Gras.El
82*2fe8fb19SBen Gras.Sh BUGS
83*2fe8fb19SBen GrasIf the length of the result is longer than
84*2fe8fb19SBen Gras.Dv PATH_MAX
85*2fe8fb19SBen Grasbytes
86*2fe8fb19SBen Gras.Pq including the terminating nul ,
87*2fe8fb19SBen Grasthe result will be truncated.
88*2fe8fb19SBen Gras.Pp
89*2fe8fb19SBen GrasThe
90*2fe8fb19SBen Gras.Fn basename
91*2fe8fb19SBen Grasfunction returns a pointer to static storage that may be overwritten
92*2fe8fb19SBen Grasby subsequent calls to
93*2fe8fb19SBen Gras.Fn basename .
94*2fe8fb19SBen GrasThis is not strictly a bug; it is explicitly allowed by
95*2fe8fb19SBen Gras.St -p1003.1-2001 .
96