#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { int fd; int ret; DIR *dir; struct dirent *ptr; if (argc != 2) errx(1, "Please specify a directory"); dir = opendir(argv[1]); if (!dir) err(1, "Failed to open directory %s", argv[1]); fd = dirfd(dir); if (fd < 0) err(1, "Failed to get dirfd"); ret = fork(); if (ret == 0) { char buf[100]; while (1) read(fd, buf, 100); } else { int ret2; while (1) { ret2 = lseek(fd, 0, SEEK_SET); if (ret2 < -1) err(1, "seek failed"); while (ptr = readdir(dir)) ; } } closedir(dir); return 0; }