xref: /freebsd/lib/libc/gen/dirname.3 (revision 8dfd7bcddf26ad1aa4d1ad8ae86b11f191559a53)
11250db81SDag-Erling Smørgrav.\"
21250db81SDag-Erling Smørgrav.\" Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
31250db81SDag-Erling Smørgrav.\" All rights reserved.
41250db81SDag-Erling Smørgrav.\"
51250db81SDag-Erling Smørgrav.\" Redistribution and use in source and binary forms, with or without
61250db81SDag-Erling Smørgrav.\" modification, are permitted provided that the following conditions
71250db81SDag-Erling Smørgrav.\" are met:
81250db81SDag-Erling Smørgrav.\" 1. Redistributions of source code must retain the above copyright
91250db81SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer.
101250db81SDag-Erling Smørgrav.\" 2. Redistributions in binary form must reproduce the above copyright
111250db81SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer in the
121250db81SDag-Erling Smørgrav.\"    documentation and/or other materials provided with the distribution.
131250db81SDag-Erling Smørgrav.\" 3. The name of the author may not be used to endorse or promote products
141250db81SDag-Erling Smørgrav.\"    derived from this software without specific prior written permission.
151250db81SDag-Erling Smørgrav.\"
161250db81SDag-Erling Smørgrav.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
171250db81SDag-Erling Smørgrav.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
181250db81SDag-Erling Smørgrav.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
191250db81SDag-Erling Smørgrav.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
201250db81SDag-Erling Smørgrav.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
211250db81SDag-Erling Smørgrav.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
221250db81SDag-Erling Smørgrav.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
231250db81SDag-Erling Smørgrav.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
241250db81SDag-Erling Smørgrav.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
251250db81SDag-Erling Smørgrav.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
261250db81SDag-Erling Smørgrav.\"
271250db81SDag-Erling Smørgrav.\" $OpenBSD: dirname.3,v 1.9 2000/04/18 03:01:25 aaron Exp $
281250db81SDag-Erling Smørgrav.\" $FreeBSD$
291250db81SDag-Erling Smørgrav.\"
301250db81SDag-Erling Smørgrav.Dd August 17, 1997
311250db81SDag-Erling Smørgrav.Dt DIRNAME 3
321250db81SDag-Erling Smørgrav.Os
331250db81SDag-Erling Smørgrav.Sh NAME
341250db81SDag-Erling Smørgrav.Nm dirname
351250db81SDag-Erling Smørgrav.Nd extract the directory portition of a pathname
361250db81SDag-Erling Smørgrav.Sh SYNOPSIS
371250db81SDag-Erling Smørgrav.Fd #include <libgen.h>
381250db81SDag-Erling Smørgrav.Ft char *
391250db81SDag-Erling Smørgrav.Fn dirname "const char *path"
401250db81SDag-Erling Smørgrav.Sh DESCRIPTION
411250db81SDag-Erling SmørgravThe
421250db81SDag-Erling Smørgrav.Fn dirname
431250db81SDag-Erling Smørgravfunction
441250db81SDag-Erling Smørgravis the converse of
451250db81SDag-Erling Smørgrav.Xr basename 3 ;
461250db81SDag-Erling Smørgravit returns a pointer to the parent directory of the pathname pointed to by
471250db81SDag-Erling Smørgrav.Ar path .
481250db81SDag-Erling SmørgravAny trailing
491250db81SDag-Erling Smørgrav.Sq \&/
501250db81SDag-Erling Smørgravcharacters are not counted as part of the directory
511250db81SDag-Erling Smørgravname.
521250db81SDag-Erling SmørgravIf
531250db81SDag-Erling Smørgrav.Ar path
541250db81SDag-Erling Smørgravis a null pointer, the empty string, or contains no
551250db81SDag-Erling Smørgrav.Sq \&/
561250db81SDag-Erling Smørgravcharacters,
571250db81SDag-Erling Smørgrav.Fn dirname
581250db81SDag-Erling Smørgravreturns a pointer to the string
591250db81SDag-Erling Smørgrav.Qq \&. ,
601250db81SDag-Erling Smørgravsignifying the current directory.
611250db81SDag-Erling Smørgrav.Sh RETURN VALUES
621250db81SDag-Erling SmørgravOn successful completion,
631250db81SDag-Erling Smørgrav.Fn dirname
641250db81SDag-Erling Smørgravreturns a pointer to the parent directory of
651250db81SDag-Erling Smørgrav.Ar path .
661250db81SDag-Erling Smørgrav.Pp
671250db81SDag-Erling SmørgravIf
681250db81SDag-Erling Smørgrav.Fn dirname
691250db81SDag-Erling Smørgravfails, a null pointer is returned and the global variable
701250db81SDag-Erling Smørgrav.Va errno
711250db81SDag-Erling Smørgravis set to indicate the error.
721250db81SDag-Erling Smørgrav.Sh ERRORS
731250db81SDag-Erling SmørgravThe following error codes may be set in
741250db81SDag-Erling Smørgrav.Va errno :
751250db81SDag-Erling Smørgrav.Bl -tag -width Er
761250db81SDag-Erling Smørgrav.It Bq Er ENAMETOOLONG
771250db81SDag-Erling SmørgravThe path component to be returned was larger than
781250db81SDag-Erling Smørgrav.Dv MAXPATHLEN .
791250db81SDag-Erling Smørgrav.El
801250db81SDag-Erling Smørgrav.Sh WARNINGS
811250db81SDag-Erling Smørgrav.Fn dirname
821250db81SDag-Erling Smørgravreturns a pointer to internal static storage space that will be overwritten
831250db81SDag-Erling Smørgravby subsequent calls (each function has its own separate storage).
841250db81SDag-Erling Smørgrav.Pp
851250db81SDag-Erling SmørgravOther vendor implementations of
861250db81SDag-Erling Smørgrav.Fn dirname
871250db81SDag-Erling Smørgravmay modify the contents of the string passed to
881250db81SDag-Erling Smørgrav.Fn dirname ;
891250db81SDag-Erling Smørgravthis should be taken into account when writing code which calls this function
901250db81SDag-Erling Smørgravif portability is desired.
911250db81SDag-Erling Smørgrav.Sh SEE ALSO
921250db81SDag-Erling Smørgrav.Xr basename 1 ,
931250db81SDag-Erling Smørgrav.Xr dirname 1 ,
941250db81SDag-Erling Smørgrav.Xr basename 3
951250db81SDag-Erling Smørgrav.Sh STANDARDS
961250db81SDag-Erling SmørgravThe
971250db81SDag-Erling Smørgrav.Fn dirname
981250db81SDag-Erling Smørgravfunction conforms to
991250db81SDag-Erling Smørgrav.St -xpg4.2 .
1001250db81SDag-Erling Smørgrav.Sh HISTORY
1011250db81SDag-Erling SmørgravThe
1021250db81SDag-Erling Smørgrav.Fn dirname
1031250db81SDag-Erling Smørgravfunction first appeared in
1048dfd7bcdSDavid E. O'Brien.Ox 2.2
1058dfd7bcdSDavid E. O'Brienand
1068dfd7bcdSDavid E. O'Brien.Fx 4.2 .
107251c176fSRuslan Ermilov.Sh AUTHORS
1081250db81SDag-Erling SmørgravTodd C. Miller <Todd.Miller@courtesan.com>
109