cc [flag . . . ] file . . . -lgen [library] . . .#include <libgen.h>
int mkdirp (const char path, mode_t mode);
int rmdirp (char d, char d1);
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.
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.
/ 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");