The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 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() functions together yield a complete pathname. The expression dirname(path) obtains the pathname of the directory where basename(path) is found.

 FUTURE DIRECTIONS

None.

 SEE ALSO

basename(), <libgen.h>.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]