DIRNAME(3) | Library Functions Manual | DIRNAME(3)

# NAME

`dirname` —
report the parent directory name of a file pathname

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <libgen.h>`

char *
`dirname`(char *path);

# DESCRIPTION

The `dirname`() function takes a pointer to a character string that contains a pathname, path, and returns a pointer to a string that is a pathname of the parent directory of path. Trailing ‘/’ characters in 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.

# SEE ALSO

dirname(1), basename(3)

# STANDARDS

- X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”)
- IEEE Std 1003.1-2001 (“POSIX.1”)

# BUGS

If the length of the result is longer than `PATH_MAX` bytes (including the terminating nul), the result will be truncated.

The `dirname`() function returns a pointer to static storage that may be overwritten by subsequent calls to `dirname`(). This is not strictly a bug; it is explicitly allowed by IEEE Std 1003.1-2001 (“POSIX.1”).

May 10, 2008 | NetBSD 9.3