tmp/tmp6inu4xf7/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Terms and definitions <a id="fs.definitions">[[fs.definitions]]</a>
|
| 2 |
+
|
| 3 |
+
A path that unambiguously identifies the location of a file without
|
| 4 |
+
reference to an additional starting location. The elements of a path
|
| 5 |
+
that determine if it is absolute are operating system dependent.
|
| 6 |
+
|
| 7 |
+
A file within a file system that acts as a container of directory
|
| 8 |
+
entries that contain information about other files, possibly including
|
| 9 |
+
other directory files.
|
| 10 |
+
|
| 11 |
+
An object within a file system that holds user or system data. Files can
|
| 12 |
+
be written to, or read from, or both. A file has certain attributes,
|
| 13 |
+
including type. File types include regular files and directories. Other
|
| 14 |
+
types of files, such as symbolic links ([[fs.def.symlink]]), may be
|
| 15 |
+
supported by the implementation.
|
| 16 |
+
|
| 17 |
+
A collection of files and their attributes.
|
| 18 |
+
|
| 19 |
+
The condition that occurs when multiple threads, processes, or computers
|
| 20 |
+
interleave access and modification of the same object within a file
|
| 21 |
+
system.
|
| 22 |
+
|
| 23 |
+
The name of a file. Filenames *dot* and *dot-dot*, consisting solely of
|
| 24 |
+
one and two period characters respectively, have special meaning. The
|
| 25 |
+
following characteristics of filenames are operating system dependent:
|
| 26 |
+
|
| 27 |
+
- The permitted characters. \[*Example 1*: Some operating systems
|
| 28 |
+
prohibit the ASCII control characters (0x00 – 0x1F) in
|
| 29 |
+
filenames. — *end example*]
|
| 30 |
+
- The maximum permitted length.
|
| 31 |
+
- Filenames that are not permitted.
|
| 32 |
+
- Filenames that have special meaning.
|
| 33 |
+
- Case awareness and sensitivity during path resolution.
|
| 34 |
+
- Special rules that may apply to file types other than regular files,
|
| 35 |
+
such as directories.
|
| 36 |
+
|
| 37 |
+
A link ([[fs.def.link]]) to an existing file. Some file systems support
|
| 38 |
+
multiple hard links to a file. If the last hard link to a file is
|
| 39 |
+
removed, the file itself is removed.
|
| 40 |
+
|
| 41 |
+
[*Note 1*: A hard link can be thought of as a shared-ownership smart
|
| 42 |
+
pointer to a file. — *end note*]
|
| 43 |
+
|
| 44 |
+
An object that associates a filename with a file. Several links can
|
| 45 |
+
associate names with the same file.
|
| 46 |
+
|
| 47 |
+
For narrow character strings, the operating system dependent current
|
| 48 |
+
encoding for pathnames ([[fs.def.pathname]]). For wide character
|
| 49 |
+
strings, the implementation-defined execution wide-character set
|
| 50 |
+
encoding ([[lex.charset]]).
|
| 51 |
+
|
| 52 |
+
The operating system dependent pathname format accepted by the host
|
| 53 |
+
operating system.
|
| 54 |
+
|
| 55 |
+
A path in normal form is said to be *normalized*. The process of
|
| 56 |
+
obtaining a normalized path from a path that is not in normal form is
|
| 57 |
+
called *normalization*.
|
| 58 |
+
|
| 59 |
+
Normalization of a generic format pathname means:
|
| 60 |
+
|
| 61 |
+
1. If the path is empty, stop.
|
| 62 |
+
2. Replace each slash character in the *root-name* with a
|
| 63 |
+
*preferred-separator*.
|
| 64 |
+
3. Replace each *directory-separator* with a *preferred-separator*.
|
| 65 |
+
\[*Note 2*: The generic pathname grammar ([[fs.path.generic]])
|
| 66 |
+
defines *directory-separator* as one or more slashes and
|
| 67 |
+
*preferred-separator*s. — *end note*]
|
| 68 |
+
4. Remove each *dot* filename and any immediately following
|
| 69 |
+
*directory-separator*.
|
| 70 |
+
5. As long as any appear, remove a non-*dot-dot* filename immediately
|
| 71 |
+
followed by a *directory-separator* and a *dot-dot* filename, along
|
| 72 |
+
with any immediately following *directory-separator*.
|
| 73 |
+
6. If there is a *root-directory*, remove all *dot-dot* filenames and
|
| 74 |
+
any *directory-separator*s immediately following them.
|
| 75 |
+
\[*Note 3*: These *dot-dot* filenames attempt to refer to
|
| 76 |
+
nonexistent parent directories. — *end note*]
|
| 77 |
+
7. If the last filename is *dot-dot*, remove any trailing
|
| 78 |
+
*directory-separator*.
|
| 79 |
+
8. If the path is empty, add a *dot*.
|
| 80 |
+
|
| 81 |
+
Behavior that is dependent upon the behavior and characteristics of an
|
| 82 |
+
operating system. See [[fs.conform.os]].
|
| 83 |
+
|
| 84 |
+
the directory that both contains a directory entry for the given
|
| 85 |
+
directory and is represented by the filename *dot-dot* in the given
|
| 86 |
+
directory.
|
| 87 |
+
|
| 88 |
+
a directory containing a directory entry for the file under discussion.
|
| 89 |
+
|
| 90 |
+
A sequence of elements that identify the location of a file within a
|
| 91 |
+
filesystem. The elements are the *root-name*ₒₚₜ , *root-directory*ₒₚₜ ,
|
| 92 |
+
and an optional sequence of filenames. The maximum number of elements in
|
| 93 |
+
the sequence is operating system dependent.
|
| 94 |
+
|
| 95 |
+
A character string that represents the name of a path. Pathnames are
|
| 96 |
+
formatted according to the generic pathname format grammar (
|
| 97 |
+
[[fs.path.generic]]) or an operating system dependent native pathname
|
| 98 |
+
format.
|
| 99 |
+
|
| 100 |
+
Pathname resolution is the operating system dependent mechanism for
|
| 101 |
+
resolving a pathname to a particular file in a file hierarchy. There may
|
| 102 |
+
be multiple pathnames that resolve to the same file.
|
| 103 |
+
|
| 104 |
+
[*Example 2*: POSIX specifies the mechanism in section 4.11, Pathname
|
| 105 |
+
resolution. — *end example*]
|
| 106 |
+
|
| 107 |
+
A path that is not absolute, and as such, only unambiguously identifies
|
| 108 |
+
the location of a file when resolved ([[fs.def.pathres]]) relative to
|
| 109 |
+
an implied starting location. The elements of a path that determine if
|
| 110 |
+
it is relative are operating system dependent.
|
| 111 |
+
|
| 112 |
+
[*Note 4*: Pathnames “.” and “..” are relative paths. — *end note*]
|
| 113 |
+
|
| 114 |
+
A type of file with the property that when the file is encountered
|
| 115 |
+
during pathname resolution, a string stored by the file is used to
|
| 116 |
+
modify the pathname resolution.
|
| 117 |
+
|
| 118 |
+
[*Note 5*: Symbolic links are often called symlinks. A symbolic link
|
| 119 |
+
can be thought of as a raw pointer to a file. If the file pointed to
|
| 120 |
+
does not exist, the symbolic link is said to be a “dangling” symbolic
|
| 121 |
+
link. — *end note*]
|
| 122 |
+
|