> On Unix systems, at least, directories can be fopen()ed just like files, and they contain binary content. Not sure what does POSIX specify about this, but trying to `fread()` (but not `fopen()`!) a directory on GNU/Linux results in an error: ```c #include <errno.h> #include <stdio.h> #include <string.h> char buf[256]; int main() { int e; size_t i; FILE * f = fopen(".", "r"); printf("%p\n", f); if (!f) return -1; i = fread(buf, 1, sizeof buf, f); e = errno; printf("%llu %d %s\n", (unsigned long long)i, e, strerror(e)); fclose(f); return 0; } ``` ``` 0x55b11dfd7010 0 21 Is a directory ```