mkpath_np(3) Library Functions Manual mkpath_np(3)

mkpath_npAuxiliary routine for efficiently creating paths

#include <unistd.h>

int
mkpath_np(const char * path, mode_t omode);

This routine allows the caller to create a path, including intermediate directories. It is equivalent to calling mkdir(1) with the -p command line argument.

Intermediate directories are created with permission bits of rwxrwxrwx (0777) as modified by the current umask, plus write and search permission for the owner.

The leaf directory is created with permission bits of omode as modified by the current umask.

A 0 return value indicates success. If an error occurs, the return value is a non-zero error code. Note that EEXIST is returned iff the leaf directory already exists and is a directory, so under certain circumstances, this error value may not indicate a failure state.

This routine does NOT modify errno.

Any error code that can be returned by mkdir(2) can be returned by mkpath_np(), but mkpath_np() will return the error code rather than setting errno.

[]
A component of the path is not a directory (in contrast to mkdir(2) which returns this based on the path prefix rather than the path).
[]
The path already exists and is a directory.

This function first appeared in iOS 5.0.

mkdir(1), chmod(2), mkdir(2)

July 13, 2011 Mac OS X