Name | Synopsis | Description | Return Values | Errors | Examples | Usage | Attributes | See Also
#include <libgen.h> char *dirname(char *path);
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 "." .
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.
No errors are defined.
The following code fragment reads a pathname, changes the current working directory to the parent directory of the named file (see chdir(2)), 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);
In the following table, the input string is the value pointed to by path, and the output string is the return value of the dirname() function.
Input String |
Output String |
---|---|
“/usr/lib"” |
“/usr” |
“/usr/” |
“/” |
“usr” |
“/” |
“/” |
“/” |
“.” |
“.” |
“..” |
“.” |
The dirname() function modifies the string pointed to by path.
The dirname() and basename(3C) functions together yield a complete pathname. The expression dirname(path) obtains the pathname of the directory where basename(path) is found.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE |
ATTRIBUTE VALUE |
---|---|
Interface Stability |
Standard |
MT-Level |
MT-Safe |
Name | Synopsis | Description | Return Values | Errors | Examples | Usage | Attributes | See Also