Some code to build directory trees

上级 fe395217
......@@ -13,6 +13,7 @@ UPROGS= \
ls \
mapbench \
maptest \
mktree \
sh \
halt \
time \
......
#include "types.h"
#include "stat.h"
#include "user.h"
#include "lib.h"
#include "fcntl.h"
static void
dolevel(int fd, int branch, int depth)
{
if (depth > 0) {
for (int i = 0; i < branch; i++) {
char name = 'a' + i;
if (mkdirat(fd, &name) < 0)
die("mkdirat");
int nfd = openat(fd, &name, O_RDWR);
if (nfd < 0)
die("openat");
dolevel(nfd, branch, depth-1);
}
}
close(fd);
}
int
main(int ac, char **av)
{
if (ac < 4)
die("usage: %s dir branch depth", av[0]);
const char *dir = av[1];
int branch = atoi(av[2]);
int depth = atoi(av[3]);
if (mkdir(dir))
die("mkdir");
int fd = open(dir, O_RDWR);
if (fd < 0)
die("open");
dolevel(fd, branch, depth);
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论