Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > M


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


mkdirp(), rmdirp() — create, remove directories in a path


#include <libgen.h>

int mkdirp (const char *path, mode_t mode);

int rmdirp (char *d, char *d1);


mkdirp creates all the missing directories in the given path with the given mode (see chmod(2) for the values of mode.) The protection part of the mode argument is modified by the process's file creation mask (see umask(2)).

rmdirp removes directories in path d. This removal starts at the end of the path and moves back toward the root as far as possible. If an error occurs, the remaining path is stored in d1. rmdirp returns a 0 only if it is able to remove every directory in the path.

To use these interfaces, link in the libgen library by specifying -lgen. For example:

cc foo.c -lgen


If a needed directory cannot be created, mkdirp returns -1 and sets errno to one of the mkdir error numbers. If all the directories are created, or existed to begin with, it returns zero.


/* create scratch directories */ if(mkdirp("/tmp/sub1/sub2/sub3", 0755) == -1) { fprintf(stderr, "cannot create directory"); exit(1); } chdir("/tmp/sub1/sub2/sub3"); . . . /* cleanup */ chdir( /tmp");" rmdirp("sub1/sub2/sub3");


mkdirp uses malloc to allocate temporary space for the string.

rmdirp returns -2 if a "." or ".." is in the path. It returns -3 if an attempt is made to remove the current directory. If an error occurs other than one of these two errors, rmdirp returns -1.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.