Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dirname(3G) — Motorola System V 88k Release 4 Version 4.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

basename(1)

chdir(2)

basename(3G)

dirname(3G)  —  GENERAL LIBRARY FUNCTIONS

NAME

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

SYNOPSIS

cc [flag ...] file ... −lgen [library ...]

#include <libgen.h>

char ∗dirname (char ∗path);

DESCRIPTION

Given a pointer to a null-terminated character string that contains a file system path name, dirname returns a pointer to a static constant string that is the parent directory of that file.  In doing this, it sometimes places a null byte in the path name after the next to last element, so the content of path must be disposable.  Trailing “/” characters in the path are not counted as part of the path. 

If path or ∗path is zero, a pointer to a static constant “.” is returned. 

dirname and basename together yield a complete path name.  dirname (path) is the directory where basename (path) is found. 

EXAMPLES

A simple file name and the strings “.” and “..” all have “.” as their return value. 

Input string Output pointer
/usr/lib /usr
/usr/ /
usr .
/ /
. .
.. .

The following code reads a path name, changes directory to the appropriate directory [see chdir(2)], and opens the file. 

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

SEE ALSO

basename(1), chdir(2), basename(3G). 

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