In the area of "requires POSIX filesystem semantics" what is typically meant is:
- allows hierarchical file names and resolution (., .., ...)
- supports at least close-to-open semantics
- umask/unix permissions, 3 filetimes
- 8bit byte support
- supports atomic renames on same filesystem
- fsync()/dirfsync() durability gurantee/limitation
- supports multi-user protection (resizing file returns 0 bytes not previous content)
- rename and delete open files (Windows does not do that)
- file names supporting all bytes beside '/' and
Sometimes it also means symlink/hardlink support as well as file names and 32bit file pointers (minimum). In some cases it is also used to refer specific API features like fcntl()
locking, mmap()
or truncate()
or AIO.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…