Implementations are encouraged to provide such behavior as it is defined by
POSIX.
Implementations shall document any behavior that differs from the
behavior defined by POSIX.
Implementations that do not support exact POSIX
behavior are encouraged to provide behavior as close to POSIX behavior as is reasonable given the
limitations of actual operating systems and file systems.
If an implementation cannot provide any
reasonable behavior, the implementation shall report an error as specified in [fs.err.report].
The FAT file system used by some memory cards, camera memory, and
floppy disks does not support hard links, symlinks, and many other features of
more capable file systems, so implementations are not required to support those
features on the FAT file system
but instead are required to report an error as described above.
If the possibility of a file system race would make it unreliable for a
program to test for a precondition before calling a function described herein,
Requires: is not specified for the function.