30#ifndef _GLIBCXX_EXPERIMENTAL_FS_OPS_H
31#define _GLIBCXX_EXPERIMENTAL_FS_OPS_H 1
33#if __cplusplus < 201103L
39namespace std _GLIBCXX_VISIBILITY(default)
41_GLIBCXX_BEGIN_NAMESPACE_VERSION
55 path absolute(
const path& __p,
const path& __base = current_path());
58 path canonical(
const path& __p,
const path& __base = current_path());
61 path canonical(
const path& __p, error_code& __ec);
64 path canonical(
const path& __p,
const path& __base, error_code& __ec);
67 copy(
const path& __from,
const path& __to)
68 { copy(__from, __to, copy_options::none); }
71 copy(
const path& __from,
const path& __to, error_code& __ec)
noexcept
72 { copy(__from, __to, copy_options::none, __ec); }
74 void copy(
const path& __from,
const path& __to,
copy_options __options);
76 void copy(
const path& __from,
const path& __to,
copy_options __options,
77 error_code& __ec)
noexcept;
80 copy_file(
const path& __from,
const path& __to)
81 {
return copy_file(__from, __to, copy_options::none); }
84 copy_file(
const path& __from,
const path& __to, error_code& __ec)
85 {
return copy_file(__from, __to, copy_options::none, __ec); }
87 bool copy_file(
const path& __from,
const path& __to,
copy_options __option);
88 bool copy_file(
const path& __from,
const path& __to,
copy_options __option,
91 void copy_symlink(
const path& __existing_symlink,
const path& __new_symlink);
92 void copy_symlink(
const path& __existing_symlink,
const path& __new_symlink,
93 error_code& __ec)
noexcept;
95 bool create_directories(
const path& __p);
96 bool create_directories(
const path& __p, error_code& __ec);
98 bool create_directory(
const path& __p);
99 bool create_directory(
const path& __p, error_code& __ec)
noexcept;
101 bool create_directory(
const path& __p,
const path& attributes);
102 bool create_directory(
const path& __p,
const path& attributes,
103 error_code& __ec)
noexcept;
105 void create_directory_symlink(
const path& __to,
const path& __new_symlink);
106 void create_directory_symlink(
const path& __to,
const path& __new_symlink,
107 error_code& __ec)
noexcept;
109 void create_hard_link(
const path& __to,
const path& __new_hard_link);
110 void create_hard_link(
const path& __to,
const path& __new_hard_link,
111 error_code& __ec)
noexcept;
113 void create_symlink(
const path& __to,
const path& __new_symlink);
114 void create_symlink(
const path& __to,
const path& __new_symlink,
115 error_code& __ec)
noexcept;
121 path current_path(error_code& __ec);
123 void current_path(
const path& __p);
124 void current_path(
const path& __p, error_code& __ec)
noexcept;
128 equivalent(
const path& __p1,
const path& __p2);
132 equivalent(
const path& __p1,
const path& __p2, error_code& __ec)
noexcept;
136 exists(file_status __s)
noexcept
137 {
return status_known(__s) && __s.type() != file_type::not_found; }
141 exists(
const path& __p)
142 {
return exists(status(__p)); }
146 exists(
const path& __p, error_code& __ec)
noexcept
148 auto __s = status(__p, __ec);
149 if (status_known(__s))
152 return __s.type() != file_type::not_found;
158 uintmax_t file_size(
const path& __p);
161 uintmax_t file_size(
const path& __p, error_code& __ec)
noexcept;
164 uintmax_t hard_link_count(
const path& __p);
167 uintmax_t hard_link_count(
const path& __p, error_code& __ec)
noexcept;
171 is_block_file(file_status __s)
noexcept
172 {
return __s.type() == file_type::block; }
176 is_block_file(
const path& __p)
177 {
return is_block_file(status(__p)); }
181 is_block_file(
const path& __p, error_code& __ec)
noexcept
182 {
return is_block_file(status(__p, __ec)); }
186 is_character_file(file_status __s)
noexcept
187 {
return __s.type() == file_type::character; }
191 is_character_file(
const path& __p)
192 {
return is_character_file(status(__p)); }
196 is_character_file(
const path& __p, error_code& __ec)
noexcept
197 {
return is_character_file(status(__p, __ec)); }
201 is_directory(file_status __s)
noexcept
202 {
return __s.type() == file_type::directory; }
206 is_directory(
const path& __p)
207 {
return is_directory(status(__p)); }
211 is_directory(
const path& __p, error_code& __ec)
noexcept
212 {
return is_directory(status(__p, __ec)); }
215 bool is_empty(
const path& __p);
217 bool is_empty(
const path& __p, error_code& __ec)
noexcept;
221 is_fifo(file_status __s)
noexcept
222 {
return __s.type() == file_type::fifo; }
226 is_fifo(
const path& __p)
227 {
return is_fifo(status(__p)); }
231 is_fifo(
const path& __p, error_code& __ec)
noexcept
232 {
return is_fifo(status(__p, __ec)); }
236 is_other(file_status __s)
noexcept
238 return exists(__s) && !is_regular_file(__s) && !is_directory(__s)
244 is_other(
const path& __p)
245 {
return is_other(status(__p)); }
249 is_other(
const path& __p, error_code& __ec)
noexcept
250 {
return is_other(status(__p, __ec)); }
254 is_regular_file(file_status __s)
noexcept
255 {
return __s.type() == file_type::regular; }
259 is_regular_file(
const path& __p)
260 {
return is_regular_file(status(__p)); }
264 is_regular_file(
const path& __p, error_code& __ec)
noexcept
265 {
return is_regular_file(status(__p, __ec)); }
269 is_socket(file_status __s)
noexcept
270 {
return __s.type() == file_type::socket; }
274 is_socket(
const path& __p)
275 {
return is_socket(status(__p)); }
279 is_socket(
const path& __p, error_code& __ec)
noexcept
280 {
return is_socket(status(__p, __ec)); }
284 is_symlink(file_status __s)
noexcept
285 {
return __s.type() == file_type::symlink; }
289 is_symlink(
const path& __p)
290 {
return is_symlink(symlink_status(__p)); }
294 is_symlink(
const path& __p, error_code& __ec)
noexcept
295 {
return is_symlink(symlink_status(__p, __ec)); }
301 file_time_type last_write_time(
const path& __p, error_code& __ec)
noexcept;
305 error_code& __ec)
noexcept;
307 void permissions(
const path& __p,
perms __prms);
308 void permissions(
const path& __p,
perms __prms, error_code& __ec)
noexcept;
311 path read_symlink(
const path& __p);
314 path read_symlink(
const path& __p, error_code& __ec);
316 bool remove(
const path& __p);
317 bool remove(
const path& __p, error_code& __ec)
noexcept;
319 uintmax_t remove_all(
const path& __p);
320 uintmax_t remove_all(
const path& __p, error_code& __ec);
322 void rename(
const path& __from,
const path& __to);
323 void rename(
const path& __from,
const path& __to, error_code& __ec)
noexcept;
325 void resize_file(
const path& __p, uintmax_t __size);
326 void resize_file(
const path& __p, uintmax_t __size, error_code& __ec)
noexcept;
329 space_info space(
const path& __p);
332 space_info space(
const path& __p, error_code& __ec)
noexcept;
335 file_status status(
const path& __p);
338 file_status status(
const path& __p, error_code& __ec)
noexcept;
341 inline bool status_known(file_status __s)
noexcept
342 {
return __s.type() != file_type::none; }
345 file_status symlink_status(
const path& __p);
348 file_status symlink_status(
const path& __p, error_code& __ec)
noexcept;
351 path system_complete(
const path& __p);
354 path system_complete(
const path& __p, error_code& __ec);
357 path temp_directory_path();
360 path temp_directory_path(error_code& __ec);
367_GLIBCXX_END_NAMESPACE_VERSION
perms
Bitmask type representing file access permissions.
std::chrono::system_clock::time_point file_time_type
The type used for file timestamps.
copy_options
Bitmask type controlling effects of filesystem::copy
ISO C++ entities toplevel namespace is std.