#include #include #include int main() { printf("%lu\n", sizeof(struct dirent)); DIR* dir = opendir("example_dir/"); if (dir == NULL) { perror("opendir"); return 1; } struct dirent* entry; int tell = 0; for (char counter = 0; (entry = readdir(dir)); counter += 1) { puts(entry->d_name); if (counter == 4) { tell = telldir(dir); } } puts("--- Testing rewind ---"); rewinddir(dir); entry = readdir(dir); puts(entry->d_name); puts("--- Testing seek ---"); // Why this doesn't cause it to actually go to the 4th element is beyond // me, but glibc acts the same way. seekdir(dir, tell); entry = readdir(dir); puts(entry->d_name); }