what is posix compliance for filesystem?

OpenFile picture OpenFile · Aug 31, 2013 · Viewed 30k times · Source

Posix compliance is a standard that is been followed by many a companies. I have few question around this area, 1. does all the file systems need to be posix compliant? 2. are applications also required to be posix compliant? 3. are there any non posix filesystems?

Answer

eckes picture eckes · Apr 17, 2014

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 \0

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.