tmp/tmppb93g3bp/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Conformance <a id="fs.conformance">[[fs.conformance]]</a>
|
| 2 |
+
|
| 3 |
+
Conformance is specified in terms of behavior. Ideal behavior is not
|
| 4 |
+
always implementable, so the conformance subclauses take that into
|
| 5 |
+
account.
|
| 6 |
+
|
| 7 |
+
#### POSIX conformance <a id="fs.conform.9945">[[fs.conform.9945]]</a>
|
| 8 |
+
|
| 9 |
+
Some behavior is specified by reference to POSIX ([[fs.norm.ref]]). How
|
| 10 |
+
such behavior is actually implemented is unspecified.
|
| 11 |
+
|
| 12 |
+
[*Note 1*: This constitutes an “as if” rule allowing implementations to
|
| 13 |
+
call native operating system or other APIs. — *end note*]
|
| 14 |
+
|
| 15 |
+
Implementations are encouraged to provide such behavior as it is defined
|
| 16 |
+
by POSIX. Implementations shall document any behavior that differs from
|
| 17 |
+
the behavior defined by POSIX. Implementations that do not support exact
|
| 18 |
+
POSIX behavior are encouraged to provide behavior as close to POSIX
|
| 19 |
+
behavior as is reasonable given the limitations of actual operating
|
| 20 |
+
systems and file systems. If an implementation cannot provide any
|
| 21 |
+
reasonable behavior, the implementation shall report an error as
|
| 22 |
+
specified in [[fs.err.report]].
|
| 23 |
+
|
| 24 |
+
[*Note 2*: This allows users to rely on an exception being thrown or an
|
| 25 |
+
error code being set when an implementation cannot provide any
|
| 26 |
+
reasonable behavior. — *end note*]
|
| 27 |
+
|
| 28 |
+
Implementations are not required to provide behavior that is not
|
| 29 |
+
supported by a particular file system.
|
| 30 |
+
|
| 31 |
+
[*Example 1*: The FAT file system used by some memory cards, camera
|
| 32 |
+
memory, and floppy disks does not support hard links, symlinks, and many
|
| 33 |
+
other features of more capable file systems, so implementations are not
|
| 34 |
+
required to support those features on the FAT file system but instead
|
| 35 |
+
are required to report an error as described above. — *end example*]
|
| 36 |
+
|
| 37 |
+
#### Operating system dependent behavior conformance <a id="fs.conform.os">[[fs.conform.os]]</a>
|
| 38 |
+
|
| 39 |
+
Some behavior is specified as being operating system dependent (
|
| 40 |
+
[[fs.def.osdep]]). The operating system an implementation is dependent
|
| 41 |
+
upon is *implementation-defined*.
|
| 42 |
+
|
| 43 |
+
It is permissible for an implementation to be dependent upon an
|
| 44 |
+
operating system emulator rather than the actual underlying operating
|
| 45 |
+
system.
|
| 46 |
+
|
| 47 |
+
#### File system race behavior <a id="fs.race.behavior">[[fs.race.behavior]]</a>
|
| 48 |
+
|
| 49 |
+
Behavior is undefined if calls to functions provided by this subclause
|
| 50 |
+
introduce a file system race ([[fs.def.race]]).
|
| 51 |
+
|
| 52 |
+
If the possibility of a file system race would make it unreliable for a
|
| 53 |
+
program to test for a precondition before calling a function described
|
| 54 |
+
herein, *Requires:* is not specified for the function.
|
| 55 |
+
|
| 56 |
+
[*Note 1*: As a design practice, preconditions are not specified when
|
| 57 |
+
it is unreasonable for a program to detect them prior to calling the
|
| 58 |
+
function. — *end note*]
|
| 59 |
+
|