From Jason Turner

[fs.enum]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpghqygh5m/{from.md → to.md} +111 -0
tmp/tmpghqygh5m/{from.md → to.md} RENAMED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Enumerations <a id="fs.enum">[[fs.enum]]</a>
2
+
3
+ #### Enum `path::format` <a id="fs.enum.path.format">[[fs.enum.path.format]]</a>
4
+
5
+ This enum specifies constants used to identify the format of the
6
+ character sequence, with the meanings listed in Table 
7
+ [[tab:enum.path.format]].
8
+
9
+ [*Note 1*: For POSIX-based systems, native and generic formats are
10
+ equivalent and the character sequence should always be interpreted in
11
+ the same way. — *end note*]
12
+
13
+ #### Enum class `file_type` <a id="fs.enum.file_type">[[fs.enum.file_type]]</a>
14
+
15
+ This enum class specifies constants used to identify file types, with
16
+ the meanings listed in Table  [[tab:fs.enum.file_type]].
17
+
18
+ [*Note 1*: The file not being found is not considered an error while
19
+ determining the type of a file. — *end note*]
20
+
21
+ #### Enum class `copy_options` <a id="fs.enum.copy.opts">[[fs.enum.copy.opts]]</a>
22
+
23
+ The `enum class` type `copy_options` is a bitmask type (
24
+ [[bitmask.types]]) that specifies bitmask constants used to control the
25
+ semantics of copy operations. The constants are specified in option
26
+ groups with the meanings listed in Table  [[tab:fs.enum.copy_options]].
27
+ Constant `none` is shown in each option group for purposes of
28
+ exposition; implementations shall provide only a single definition.
29
+
30
+ **Table: Enum class `copy_options`** <a id="tab:fs.enum.copy_options">[tab:fs.enum.copy_options]</a>
31
+
32
+ | Constant | Meaning |
33
+ | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
34
+ | `none` | (Default) Error; file already exists. |
35
+ | `skip_existing` | Do not overwrite existing file, do not report an error. |
36
+ | `overwrite_existing` | Overwrite the existing file. |
37
+ | `update_existing` | Overwrite the existing file if it is older than the replacement file. \ohdrx{2}{Option group controlling `copy` function effects for sub-directories} |
38
+ | `recursive` | Recursively copy sub-directories and their contents. \ohdrx{2}{Option group controlling `copy` function effects for symbolic links} |
39
+ | `copy_symlinks` | Copy symbolic links as symbolic links rather than copying the files that they point to. |
40
+ | `skip_symlinks` | Ignore symbolic links. \ohdrx{2}{Option group controlling `copy` function effects for choosing the form of copying} |
41
+ | `directories_only` | Copy directory structure only, do not copy non-directory files. |
42
+ | `create_symlinks` | Make symbolic links instead of copies of files. The source path shall be an absolute path unless the destination path is in the current directory. |
43
+ | `create_hard_links` | Make hard links instead of copies of files. |
44
+
45
+
46
+ #### Enum class `perms` <a id="fs.enum.perms">[[fs.enum.perms]]</a>
47
+
48
+ The `enum class` type `perms` is a bitmask type ([[bitmask.types]])
49
+ that specifies bitmask constants used to identify file permissions, with
50
+ the meanings listed in Table  [[tab:fs.enum.perms]].
51
+
52
+ **Table: Enum class `perms`** <a id="tab:fs.enum.perms">[tab:fs.enum.perms]</a>
53
+
54
+ | Name | Value (octal) | POSIX macro | Definition or notes |
55
+ | -------------- | ------------- | ----------- | ---------------------------------------------------------------------------------------------------------------- |
56
+ | `none` | `0` | | There are no permissions set for the file. |
57
+ | `owner_read` | `0400` | `S_IRUSR` | Read permission, owner |
58
+ | `owner_write` | `0200` | `S_IWUSR` | Write permission, owner |
59
+ | `owner_exec` | `0100` | `S_IXUSR` | Execute/search permission, owner |
60
+ | `owner_all` | `0700` | `S_IRWXU` | Read, write, execute/search by owner;<br> `owner_read | owner_write | owner_exec` |
61
+ | `group_read` | `040` | `S_IRGRP` | Read permission, group |
62
+ | `group_write` | `020` | `S_IWGRP` | Write permission, group |
63
+ | `group_exec` | `010` | `S_IXGRP` | Execute/search permission, group |
64
+ | `group_all` | `070` | `S_IRWXG` | Read, write, execute/search by group;<br> `group_read | group_write | group_exec` |
65
+ | `others_read` | `04` | `S_IROTH` | Read permission, others |
66
+ | `others_write` | `02` | `S_IWOTH` | Write permission, others |
67
+ | `others_exec` | `01` | `S_IXOTH` | Execute/search permission, others |
68
+ | `others_all` | `07` | `S_IRWXO` | Read, write, execute/search by others;<br> `others_read | others_write | others_exec` |
69
+ | `all` | `0777` | | `owner_all | group_all | others_all` |
70
+ | `set_uid` | `04000` | `S_ISUID` | Set-user-ID on execution |
71
+ | `set_gid` | `02000` | `S_ISGID` | Set-group-ID on execution |
72
+ | `sticky_bit` | `01000` | `S_ISVTX` | Operating system dependent. |
73
+ | `mask` | `07777` | | `all | set_uid | set_gid | sticky_bit` |
74
+ | `unknown` | `0xFFFF` | | The permissions are not known, such as when a `file_status` object is created without specifying the permissions |
75
+
76
+
77
+ #### Enum class `perm_options` <a id="fs.enum.perm.opts">[[fs.enum.perm.opts]]</a>
78
+
79
+ The `enum class` type `perm_options` is a bitmask type (
80
+ [[bitmask.types]]) that specifies bitmask constants used to control the
81
+ semantics of permissions operations, with the meanings listed in Table 
82
+ [[tab:enum.perm_options]]. The bitmask constants are bitmask elements.
83
+ In Table  [[tab:enum.perm_options]] `perm` denotes a value of type
84
+ `perms` passed to `permissions`.
85
+
86
+ **Table: Enum class `perm_options`** <a id="tab:enum.perm_options">[tab:enum.perm_options]</a>
87
+
88
+ | Name | Meaning |
89
+ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
90
+ | `replace` | `permissions` shall replace the file's permission bits with `perm` |
91
+ | `add` | `permissions` shall replace the file's permission bits with the bitwise OR of `perm` and the file's current permission bits. |
92
+ | `remove` | `permissions` shall replace the file's permission bits with the bitwise AND of the complement of `perm` and the file's current permission bits. |
93
+ | `nofollow` | `permissions` shall change the permissions of a symbolic link itself rather than the permissions of the file the link resolves to. |
94
+
95
+
96
+ #### Enum class `directory_options` <a id="fs.enum.dir.opts">[[fs.enum.dir.opts]]</a>
97
+
98
+ The `enum class` type `directory_options` is a bitmask type (
99
+ [[bitmask.types]]) that specifies bitmask constants used to identify
100
+ directory traversal options, with the meanings listed in Table 
101
+ [[tab:fs.enum.directory_options]].
102
+
103
+ **Table: Enum class `directory_options`** <a id="tab:fs.enum.directory_options">[tab:fs.enum.directory_options]</a>
104
+
105
+ | Name | Meaning |
106
+ | -------------------------- | ------------------------------------------------------------------ |
107
+ | `none` | (Default) Skip directory symlinks, permission denied is an error. |
108
+ | `follow_directory_symlink` | Follow rather than skip directory symlinks. |
109
+ | `skip_permission_denied` | Skip directories that would otherwise result in permission denied. |
110
+
111
+