summaryrefslogtreecommitdiffstats
path: root/man3/basename.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/basename.3')
-rw-r--r--man3/basename.3187
1 files changed, 0 insertions, 187 deletions
diff --git a/man3/basename.3 b/man3/basename.3
deleted file mode 100644
index a3dc075..0000000
--- a/man3/basename.3
+++ /dev/null
@@ -1,187 +0,0 @@
-'\" t
-.\" Copyright (c) 2000 by Michael Kerrisk <mtk.manpages@gmail.com>
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" Created, 14 Dec 2000 by Michael Kerrisk
-.\"
-.TH basename 3 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-basename, dirname \- parse pathname components
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <libgen.h>
-.P
-.BI "char *dirname(char *" path );
-.BI "char *basename(char *" path );
-.fi
-.SH DESCRIPTION
-Warning: there are two different functions
-.BR basename ();
-see below.
-.P
-The functions
-.BR dirname ()
-and
-.BR basename ()
-break a null-terminated pathname string into directory
-and filename components.
-In the usual case,
-.BR dirname ()
-returns the string up to, but not including, the final \[aq]/\[aq], and
-.BR basename ()
-returns the component following the final \[aq]/\[aq].
-Trailing \[aq]/\[aq] characters are not counted as part of the pathname.
-.P
-If
-.I path
-does not contain a slash,
-.BR dirname ()
-returns the string "." while
-.BR basename ()
-returns a copy of
-.IR path .
-If
-.I path
-is the string "/", then both
-.BR dirname ()
-and
-.BR basename ()
-return the string "/".
-If
-.I path
-is a null pointer or points to an empty string, then both
-.BR dirname ()
-and
-.BR basename ()
-return the string ".".
-.P
-Concatenating the string returned by
-.BR dirname (),
-a "/", and the string returned by
-.BR basename ()
-yields a complete pathname.
-.P
-Both
-.BR dirname ()
-and
-.BR basename ()
-may modify the contents of
-.IR path ,
-so it may be desirable to pass a copy when calling one of
-these functions.
-.P
-These functions may return pointers to statically allocated memory
-which may be overwritten by subsequent calls.
-Alternatively, they may return a pointer to some part of
-.IR path ,
-so that the string referred to by
-.I path
-should not be modified or freed until the pointer returned by
-the function is no longer required.
-.P
-The following list of examples (taken from SUSv2)
-shows the strings returned by
-.BR dirname ()
-and
-.BR basename ()
-for different paths:
-.RS
-.TS
-lb lb lb
-l l l l.
-path dirname basename
-/usr/lib /usr lib
-/usr/ / usr
-usr . usr
-/ / /
-\&. . .
-\&.. . ..
-.TE
-.RE
-.SH RETURN VALUE
-Both
-.BR dirname ()
-and
-.BR basename ()
-return pointers to null-terminated strings.
-(Do not pass these pointers to
-.BR free (3).)
-.SH ATTRIBUTES
-For an explanation of the terms used in this section, see
-.BR attributes (7).
-.TS
-allbox;
-lbx lb lb
-l l l.
-Interface Attribute Value
-T{
-.na
-.nh
-.BR basename (),
-.BR dirname ()
-T} Thread safety MT-Safe
-.TE
-.SH VERSIONS
-There are two different versions of
-.BR basename ()
-- the POSIX version described above, and the GNU version, which one gets
-after
-.P
-.in +4n
-.EX
-.BR " #define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.B " #include <string.h>"
-.EE
-.in
-.P
-The GNU version never modifies its argument, and returns the
-empty string when
-.I path
-has a trailing slash, and in particular also when it is "/".
-There is no GNU version of
-.BR dirname ().
-.P
-With glibc, one gets the POSIX version of
-.BR basename ()
-when
-.I <libgen.h>
-is included, and the GNU version otherwise.
-.SH STANDARDS
-POSIX.1-2008.
-.SH HISTORY
-POSIX.1-2001.
-.SH BUGS
-In the glibc implementation,
-the POSIX versions of these functions modify the
-.I path
-argument, and segfault when called with a static string
-such as "/usr/".
-.P
-Before glibc 2.2.1, the glibc version of
-.BR dirname ()
-did not correctly handle pathnames with trailing \[aq]/\[aq] characters,
-and generated a segfault if given a NULL argument.
-.SH EXAMPLES
-The following code snippet demonstrates the use of
-.BR basename ()
-and
-.BR dirname ():
-.in +4n
-.EX
-char *dirc, *basec, *bname, *dname;
-char *path = "/etc/passwd";
-\&
-dirc = strdup(path);
-basec = strdup(path);
-dname = dirname(dirc);
-bname = basename(basec);
-printf("dirname=%s, basename=%s\en", dname, bname);
-.EE
-.in
-.SH SEE ALSO
-.BR basename (1),
-.BR dirname (1)