Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dirname(3C) — SunOS 5.6

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

basename(1)

chdir(2)

basename(3C)

attributes(5)

dirname(3C)

NAME

dirname − report the parent directory name of a file path name

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 "." . 

RETURN VALUES

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. 

EXAMPLES

Input String Output String
"/usr/lib" "/usr"
"/usr/" "/"
"usr" "."
"/" "/"
"." "."
".." "."

The following code fragment reads a path name, changes directory to the parent directory of the named file (see chdir(2)), and opens the file. 

char path[100], ∗pathcopy;
int fd;
gets (path);
pathcopy = strdup (path);
chdir (dirname (pathcopy) );
free (pathcopy);
fd = open (basename (path), O_RDONLY);

USAGE

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(). 

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. 

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level MT-Safe

SEE ALSO

basename(1), chdir(2), basename(3C), attributes(5)

NOTES

When compiling multi-thread applications, the _REENTRANT flag must be defined on the compile line.  This flag should only be used in multi-thread applications. 

SunOS 5.6  —  Last change: 29 Dec 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026