mkdirp(3G)                                                          mkdirp(3G)


NAME
     mkdirp, rmdirp - create, remove directories in a path

SYNOPSIS
     cc [flag ...] file ...  -lgen [library ...]

     #include <libgen.h>

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

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

DESCRIPTION
     mkdirp creates all the missing directories in the given path with the
     given mode.  [See chmod(2) for the values of mode.]

     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.

EXAMPLES
     /* 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");

DIAGNOSTICS
     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.

NOTES
     mkdirp uses malloc to allocate temporary space for the string.

     rmdirp returns -2 if a ``.'' or ``..''  is in the path and -3 if an
     attempt is made to remove the current directory.  If an error occurs
     other than one of the above, -1 is returned.

SEE ALSO
     mkdir(2), rmdir(2),


                                                                        Page 1