17b1fac00SXin LI.\" $OpenBSD: dirname.3,v 1.17 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.\" 57b1fac00SXin LI.\" Permission to use, copy, modify, and distribute this software for any 67b1fac00SXin LI.\" purpose with or without fee is hereby granted, provided that the above 77b1fac00SXin LI.\" copyright notice and this permission notice appear in all copies. 81250db81SDag-Erling Smørgrav.\" 97b1fac00SXin LI.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 107b1fac00SXin LI.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 117b1fac00SXin LI.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 127b1fac00SXin LI.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 137b1fac00SXin LI.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 147b1fac00SXin LI.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 157b1fac00SXin LI.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 161250db81SDag-Erling Smørgrav.\" 171250db81SDag-Erling Smørgrav.\" $FreeBSD$ 181250db81SDag-Erling Smørgrav.\" 19*fd85bff5SEd Schouten.Dd September 5, 2016 201250db81SDag-Erling Smørgrav.Dt DIRNAME 3 211250db81SDag-Erling Smørgrav.Os 221250db81SDag-Erling Smørgrav.Sh NAME 231250db81SDag-Erling Smørgrav.Nm dirname 2457bd0fc6SJens Schweikhardt.Nd extract the directory part of a pathname 251250db81SDag-Erling Smørgrav.Sh SYNOPSIS 2632eef9aeSRuslan Ermilov.In libgen.h 271250db81SDag-Erling Smørgrav.Ft char * 28938809f9SEd Schouten.Fn dirname "char *path" 291250db81SDag-Erling Smørgrav.Sh DESCRIPTION 301250db81SDag-Erling SmørgravThe 311250db81SDag-Erling Smørgrav.Fn dirname 327b1fac00SXin LIfunction is the converse of 331250db81SDag-Erling Smørgrav.Xr basename 3 ; 341250db81SDag-Erling Smørgravit returns a pointer to the parent directory of the pathname pointed to by 355c564baeSRuslan Ermilov.Fa path . 361250db81SDag-Erling SmørgravAny trailing 371250db81SDag-Erling Smørgrav.Sq \&/ 381250db81SDag-Erling Smørgravcharacters are not counted as part of the directory 391250db81SDag-Erling Smørgravname. 40e2f68161SEd Schouten.Sh RETURN VALUES 411250db81SDag-Erling SmørgravIf 425c564baeSRuslan Ermilov.Fa path 431250db81SDag-Erling Smørgravis a null pointer, the empty string, or contains no 441250db81SDag-Erling Smørgrav.Sq \&/ 451250db81SDag-Erling Smørgravcharacters, 461250db81SDag-Erling Smørgrav.Fn dirname 471250db81SDag-Erling Smørgravreturns a pointer to the string 481250db81SDag-Erling Smørgrav.Qq \&. , 491250db81SDag-Erling Smørgravsignifying the current directory. 50e2f68161SEd SchoutenOtherwise, 51e2f68161SEd Schoutenit returns a pointer to the parent directory of 525c564baeSRuslan Ermilov.Fa path . 53e2f68161SEd Schouten.Sh IMPLEMENTATION NOTES 54e2f68161SEd SchoutenThis implementation of 551250db81SDag-Erling Smørgrav.Fn dirname 56e2f68161SEd Schoutenuses the buffer provided by the caller to store the resulting parent 57e2f68161SEd Schoutendirectory. 58e2f68161SEd SchoutenOther vendor implementations may return a pointer to internal storage 59e2f68161SEd Schoutenspace instead. 60e2f68161SEd SchoutenThe advantage of the former approach is that it ensures thread-safety, 61e2f68161SEd Schoutenwhile also placing no upper limit on the supported length of the 62e2f68161SEd Schoutenpathname. 631250db81SDag-Erling Smørgrav.Sh SEE ALSO 641250db81SDag-Erling Smørgrav.Xr basename 1 , 651250db81SDag-Erling Smørgrav.Xr dirname 1 , 661250db81SDag-Erling Smørgrav.Xr basename 3 671250db81SDag-Erling Smørgrav.Sh STANDARDS 681250db81SDag-Erling SmørgravThe 691250db81SDag-Erling Smørgrav.Fn dirname 701250db81SDag-Erling Smørgravfunction conforms to 711250db81SDag-Erling Smørgrav.St -xpg4.2 . 721250db81SDag-Erling Smørgrav.Sh HISTORY 731250db81SDag-Erling SmørgravThe 741250db81SDag-Erling Smørgrav.Fn dirname 751250db81SDag-Erling Smørgravfunction first appeared in 768dfd7bcdSDavid E. O'Brien.Ox 2.2 778dfd7bcdSDavid E. O'Brienand 788dfd7bcdSDavid E. O'Brien.Fx 4.2 . 79e2f68161SEd Schouten.Pp 80e2f68161SEd SchoutenIn 81e2f68161SEd Schouten.Fx 12.0 , 82e2f68161SEd Schoutenthis function was reimplemented to store its result in the provided 83e2f68161SEd Schouteninput buffer. 84251c176fSRuslan Ermilov.Sh AUTHORS 85e2f68161SEd Schouten.An Nuxi, the Netherlands 86