Amiga Unix — 68040 · 68060

Manual pages › General-purpose library (3G)

dirname(3G)

report the parent directory name of a file path name

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

Also by this name: dirname(1), General commands

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

chdir(2), basename(3G).
basename(1) in the User's Reference Manual.