NAME
dirname — report
the parent directory name of a file pathname
SYNOPSIS
#include <libgen.h> char *dirname(char *path);
DESCRIPTION
The dirname() function takes a pointer to a character string that contains a pathname, and returns a pointer to a string that is a pathname of the parent directory of that file. Trailing '/' characters in the path are not counted as part of the path.
If path does not contain a '/', then dirname() returns a pointer to the string "." . If path is a null pointer or points to an empty string, dirname() returns a pointer to the string "." .
This interface need not be reentrant.
RETURN VALUE
The dirname() function returns a pointer to a string that is the parent directory of path . If path is a null pointer or points to an empty string, a pointer to a string "." is returned.
The dirname() function may modify the string pointed to by path, and may return a pointer to static storage that may then be overwritten by subsequent calls to dirname().
ERRORS
No errors are defined.
EXAMPLES
| Input String | Output String |
| /usr/lib | /usr |
| /usr/ | / |
| usr | . |
| / | / |
| . | . |
| .. | . |
The following code fragment reads a pathname, changes the current
working directory to the parent directory, and opens the file.
char path[MAXPATHLEN], *pathcopy; int fd; fgets(path,
MAXPATHLEN, stdin); pathcopy = strdup(path); chdir(dirname(pathcopy)); fd =
open(basename(path), O_RDONLY);
APPLICATION USAGE
The dirname() and basename(3) functions together
yield a complete pathname. The expression dirname (
path ) obtains the pathname of the directory where basename ( path ) is
found.
FUTURE DIRECTIONS
None.