Originální popis anglicky:
basename - return the last component of a pathname
Návod, kniha: POSIX Programmer's Manual
#include <libgen.h>
char *basename(char *
path);
The
basename() function shall take the pathname pointed to by
path
and return a pointer to the final component of the pathname, deleting any
trailing
'/' characters.
If the string consists entirely of the
'/' character,
basename()
shall return a pointer to the string
"/" . If the string is
exactly
"//" , it is implementation-defined whether
'/' or
"//" is returned.
If
path is a null pointer or points to an empty string,
basename()
shall return a pointer to the string
"." .
The
basename() function may modify the string pointed to by
path,
and may return a pointer to static storage that may then be overwritten by a
subsequent call to
basename().
The
basename() function need not be reentrant. A function that is not
required to be reentrant is not required to be thread-safe.
The
basename() function shall return a pointer to the final component of
path.
No errors are defined.
The following sections are informative.
The following program fragment returns a pointer to the value
lib, which
is the base name of
/usr/lib.
#include <libgen.h>
...
char *name = "/usr/lib";
char *base;
base = basename(name);
...
In the following table, the input string is the value pointed to by
path,
and the output string is the return value of the
basename() function.
Input String |
Output String |
"/usr/lib" |
"lib" |
"/usr/" |
"usr" |
"/" |
"/" |
"///" |
"/" |
"//usr//lib//" |
"lib" |
None.
None.
None.
dirname() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<libgen.h>, the Shell and
Utilities volume of IEEE Std 1003.1-2001,
basename
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.