mirror of
https://github.com/boostorg/filesystem.git
synced 2026-01-19 04:12:09 +00:00
Fixed mismatching HTML tags in docs.
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem Deprecated Features</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -15,7 +15,7 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Deprecated Features</font>
|
||||
</td>
|
||||
@@ -37,6 +37,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><a name="Deprecated-names">Deprecated names and features</a></h2>
|
||||
@@ -57,27 +58,27 @@ can be suppressed by defining <code>BOOST_FILESYSTEM_ALLOW_DEPRECATED</code> mac
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<b><i>Component or location</i></b></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></td>
|
||||
<p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></p></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
✔</td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><b><i>New name</i></b></td>
|
||||
<p style="font-size: 10pt"><b><i>New name</i></b></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<code>class path</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt">Construction, assignment and appending from container types.</td>
|
||||
<p style="font-size: 10pt">Construction, assignment and appending from container types.</p></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
</td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt">Use string types or iterators as the source for path construction, assignment and appending.</td>
|
||||
<p style="font-size: 10pt">Use string types or iterators as the source for path construction, assignment and appending.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<code>path.hpp</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<code>template<class String, class Traits><br>
|
||||
<code>template<class String, class Traits><br/>
|
||||
class basic_path;</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
</td>
|
||||
@@ -129,9 +130,9 @@ those features along with suggested replacements.</p>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<b><i>Component or location</i></b></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><b><i>Removed name</i></b></td>
|
||||
<p style="font-size: 10pt"><b><i>Removed name</i></b></p></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><b><i>Possible replacement</i></b></td>
|
||||
<p style="font-size: 10pt"><b><i>Possible replacement</i></b></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top"><code>class path</code></td>
|
||||
@@ -206,9 +207,9 @@ those features along with suggested replacements.</p>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<code>class path</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><code>remove_leaf()</code></td>
|
||||
<p style="font-size: 10pt"><code>remove_leaf()</code></p></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p style="font-size: 10pt"><code>remove_filename()</code></td>
|
||||
<p style="font-size: 10pt"><code>remove_filename()</code></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
@@ -222,13 +223,13 @@ those features along with suggested replacements.</p>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<code>operations.hpp</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p dir="ltr"><code>template <class Path><br>
|
||||
Path complete(const Path& p,<br>
|
||||
const Path& base=<br>
|
||||
initial_path<Path>())</code></td>
|
||||
<p dir="ltr"><code>template <class Path><br/>
|
||||
Path complete(const Path& p,<br/>
|
||||
const Path& base=<br/>
|
||||
initial_path<Path>())</code></p></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p dir="ltr"><code>path absolute(const path& p, const path& base=<br>
|
||||
current_path())</code></td>
|
||||
<p dir="ltr"><code>path absolute(const path& p, const path& base=<br/>
|
||||
current_path())</code></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
@@ -237,7 +238,7 @@ those features along with suggested replacements.</p>
|
||||
<code>is_regular(file_status f)</code></td>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
<p dir="ltr">
|
||||
<code>is_regular_file(file_status f)</code></td>
|
||||
<code>is_regular_file(file_status f)</code></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size: 10pt" valign="top">
|
||||
@@ -341,7 +342,7 @@ happen. Depending on the user to call <code>initial_path()</code> at the
|
||||
beginning of <code>main()</code> is too error prone. An equivalent
|
||||
function can trivially be provided by a user.</p>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
|
||||
<p>© Copyright Beman Dawes, 2002-2005, 2010</p>
|
||||
<p>© Copyright Andrey Semashev, 2019-2024</p>
|
||||
|
||||
120
doc/design.htm
120
doc/design.htm
@@ -1,25 +1,25 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Boost Filesystem Library Design</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<h1>
|
||||
<img border="0" src="../../../boost.png" align="center" width="277" height="86">Filesystem
|
||||
<img border="0" src="../../../boost.png" align="center" width="277" height="86"/>Filesystem
|
||||
Library Design</h1>
|
||||
|
||||
<p><a href="#Introduction">Introduction</a><br>
|
||||
<a href="#Requirements">Requirements</a><br>
|
||||
<a href="#Realities">Realities</a><br>
|
||||
<a href="#Rationale">Rationale</a><br>
|
||||
<a href="#Abandoned_Designs">Abandoned_Designs</a><br>
|
||||
<p><a href="#Introduction">Introduction</a><br/>
|
||||
<a href="#Requirements">Requirements</a><br/>
|
||||
<a href="#Realities">Realities</a><br/>
|
||||
<a href="#Rationale">Rationale</a><br/>
|
||||
<a href="#Abandoned_Designs">Abandoned_Designs</a><br/>
|
||||
<a href="#References">References</a></p>
|
||||
|
||||
<h2><a name="Introduction">Introduction</a></h2>
|
||||
@@ -42,8 +42,8 @@ of choice..</p>
|
||||
<h2><a name="Requirements">Requirements</a></h2>
|
||||
<ul>
|
||||
<li>Be able to write portable script-style filesystem operations in modern
|
||||
C++.<br>
|
||||
<br>
|
||||
C++.<br/>
|
||||
<br/>
|
||||
Rationale: This is a common programming need. It is both an
|
||||
embarrassment and a hardship that this is not possible with either the current
|
||||
C++ or Boost libraries. The need is particularly acute
|
||||
@@ -53,31 +53,31 @@ of choice..</p>
|
||||
languages. All operating systems provide some form of API for filesystem
|
||||
operations, and the POSIX bindings are increasingly available even on
|
||||
operating systems not normally associated with POSIX, such as the Mac, z/OS,
|
||||
or OS/390.<br>
|
||||
or OS/390.<br/>
|
||||
</li>
|
||||
<li>Work within the <a href="#Realities">realities</a> described below.<br>
|
||||
<br>
|
||||
<li>Work within the <a href="#Realities">realities</a> described below.<br/>
|
||||
<br/>
|
||||
Rationale: This isn't a research project. The need is for something that works on
|
||||
today's platforms, including some of the embedded operating systems
|
||||
with limited file systems. Because of the emphasis on portability, such a
|
||||
library would be much more useful if standardized. That means being able to
|
||||
work with a much wider range of platforms that just Unix or Windows and their
|
||||
clones.<br>
|
||||
clones.<br/>
|
||||
</li>
|
||||
<li>Avoid dangerous programming practices. Particularly, all-too-easy-to-ignore error notifications
|
||||
and use of global variables. If a dangerous feature is provided, identify it as such.<br>
|
||||
<br>
|
||||
and use of global variables. If a dangerous feature is provided, identify it as such.<br/>
|
||||
<br/>
|
||||
Rationale: Normally this would be covered by "the usual Boost requirements...",
|
||||
but it is mentioned explicitly because the equivalent native platform and
|
||||
scripting language interfaces often depend on all-too-easy-to-ignore error
|
||||
notifications and global variables like "current
|
||||
working directory".<br>
|
||||
working directory".<br/>
|
||||
</li>
|
||||
<li>Structure the library so that it is still useful even if some functionality
|
||||
does not map well onto a given platform or directory tree. Particularly, much
|
||||
useful functionality should be portable even to flat
|
||||
(non-hierarchical) filesystems.<br>
|
||||
<br>
|
||||
(non-hierarchical) filesystems.<br/>
|
||||
<br/>
|
||||
Rationale: Much functionality which does not
|
||||
require a hierarchical directory structure is still useful on flat-structure
|
||||
filesystems. There are many systems, particularly embedded systems,
|
||||
@@ -86,32 +86,32 @@ of choice..</p>
|
||||
<ul>
|
||||
<li>Interface smoothly with current C++ Standard Library input/output
|
||||
facilities. For example, paths should be
|
||||
easy to use in std::basic_fstream constructors.<br>
|
||||
<br>
|
||||
easy to use in std::basic_fstream constructors.<br/>
|
||||
<br/>
|
||||
Rationale: One of the most common uses of file system functionality is to
|
||||
manipulate paths for eventual use in input/output operations.
|
||||
Thus the need to interface smoothly with standard library I/O.<br>
|
||||
Thus the need to interface smoothly with standard library I/O.<br/>
|
||||
</li>
|
||||
<li>Suitable for eventual standardization. The implication of this requirement
|
||||
is that the interface be close to minimal, and that great care be take
|
||||
regarding portability.<br>
|
||||
<br>
|
||||
regarding portability.<br/>
|
||||
<br/>
|
||||
Rationale: The lack of file system operations is a serious hole
|
||||
in the current standard, with no other known candidates to fill that hole.
|
||||
Libraries with elaborate interfaces and difficult to port specifications are much less likely to be accepted for
|
||||
standardization.<br>
|
||||
standardization.<br/>
|
||||
</li>
|
||||
<li>The usual Boost <a href="http://www.boost.org/more/lib_guide.htm">requirements and
|
||||
guidelines</a> apply.<br>
|
||||
guidelines</a> apply.<br/>
|
||||
</li>
|
||||
<li>Encourage, but do not require, portability in path names.<br>
|
||||
<br>
|
||||
<li>Encourage, but do not require, portability in path names.<br/>
|
||||
<br/>
|
||||
Rationale: For paths which originate from user input it is unreasonable to
|
||||
require portable path syntax.<br>
|
||||
require portable path syntax.<br/>
|
||||
</li>
|
||||
<li>Avoid giving the illusion of portability where portability in fact does not
|
||||
exist.<br>
|
||||
<br>
|
||||
exist.<br/>
|
||||
<br/>
|
||||
Rationale: Leaving important behavior unspecified or "implementation defined" does a
|
||||
great disservice to programmers using a library because it makes it appear
|
||||
that code relying on the behavior is portable, when in fact there is nothing
|
||||
@@ -122,68 +122,68 @@ of choice..</p>
|
||||
<h2><a name="Realities">Realities</a></h2>
|
||||
<ul>
|
||||
<li>Some operating systems have a single directory tree root, others have
|
||||
multiple roots.<br>
|
||||
multiple roots.<br/>
|
||||
</li>
|
||||
<li>Some file systems provide both a long and short form of filenames.<br>
|
||||
<li>Some file systems provide both a long and short form of filenames.<br/>
|
||||
</li>
|
||||
<li>Some file systems have different syntax for file paths and directory
|
||||
paths.<br>
|
||||
paths.<br/>
|
||||
</li>
|
||||
<li>Some file systems have different rules for valid file names and valid
|
||||
directory names.<br>
|
||||
directory names.<br/>
|
||||
</li>
|
||||
<li>Some file systems (ISO-9660, level 1, for example) use very restricted
|
||||
(so-called 8.3) file names.<br>
|
||||
(so-called 8.3) file names.<br/>
|
||||
</li>
|
||||
<li>Some operating systems allow file systems with different
|
||||
characteristics to be "mounted" within a directory tree. Thus an
|
||||
ISO-9660 or Windows
|
||||
file system may end up as a sub-tree of a POSIX directory tree.<br>
|
||||
file system may end up as a sub-tree of a POSIX directory tree.<br/>
|
||||
</li>
|
||||
<li>Wide-character versions of directory and file operations are available on some operating
|
||||
systems, and not available on others.<br>
|
||||
systems, and not available on others.<br/>
|
||||
</li>
|
||||
<li>There is no law that says directory hierarchies have to be specified in
|
||||
terms of left-to-right decent from the root.<br>
|
||||
terms of left-to-right decent from the root.<br/>
|
||||
</li>
|
||||
<li>Some file systems have a concept of file "version number" or "generation
|
||||
number". Some don't.<br>
|
||||
number". Some don't.<br/>
|
||||
</li>
|
||||
<li>Not all operating systems use single character separators in path names. Some use
|
||||
paired notations. A typical fully-specified OpenVMS filename
|
||||
might look something like this:<br>
|
||||
<br>
|
||||
<code> DISK$SCRATCH:[GEORGE.PROJECT1.DAT]BIG_DATA_FILE.NTP;5<br>
|
||||
</code><br>
|
||||
The general OpenVMS format is:<br>
|
||||
<br>
|
||||
might look something like this:<br/>
|
||||
<br/>
|
||||
<code> DISK$SCRATCH:[GEORGE.PROJECT1.DAT]BIG_DATA_FILE.NTP;5<br/>
|
||||
</code><br/>
|
||||
The general OpenVMS format is:<br/>
|
||||
<br/>
|
||||
|
||||
<i>Device:[directories.dot.separated]filename.extension;version_number</i><br>
|
||||
<i>Device:[directories.dot.separated]filename.extension;version_number</i><br/>
|
||||
</li>
|
||||
<li>For common file systems, determining if two descriptors are for same
|
||||
entity is extremely difficult or impossible. For example, the concept of
|
||||
equality can be different for each portion of a path - some portions may be
|
||||
case or locale sensitive, others not. Case sensitivity is a property of the
|
||||
pathname itself, and not the platform. Determining collating sequence is even
|
||||
worse.<br>
|
||||
worse.<br/>
|
||||
</li>
|
||||
<li>Race-conditions may occur. Directory trees, directories, files, and file attributes are in effect shared between all threads, processes, and computers which have access to the
|
||||
filesystem. That may well include computers on the other side of the
|
||||
world or in orbit around the world. This implies that file system operations
|
||||
may fail in unexpected ways. For example:<br>
|
||||
<br>
|
||||
may fail in unexpected ways. For example:<br/>
|
||||
<br/>
|
||||
<code> assert( exists("foo") == exists("foo") );
|
||||
// may fail!<br>
|
||||
// may fail!<br/>
|
||||
assert( is_directory("foo") == is_directory("foo");
|
||||
// may fail!<br>
|
||||
</code><br>
|
||||
// may fail!<br/>
|
||||
</code><br/>
|
||||
In the first example, the file may have been deleted between calls to
|
||||
exists(). In the second example, the file may have been deleted and then
|
||||
replaced by a directory of the same name between the calls to is_directory().<br>
|
||||
replaced by a directory of the same name between the calls to is_directory().<br/>
|
||||
</li>
|
||||
<li>Even though an application may be portable, it still will have to traffic
|
||||
in system specific paths occasionally; user provided input is a common
|
||||
example.<br>
|
||||
example.<br/>
|
||||
</li>
|
||||
<li><a name="symbolic-link-use-case">Symbolic</a> links cause canonical and
|
||||
normal form of some paths to represent different files or directories. For
|
||||
@@ -315,7 +315,7 @@ Page,
|
||||
Available from each of the organizations involved in its creation. For
|
||||
example, read online or download from
|
||||
<a href="http://www.unix.org/single_unix_specification/">
|
||||
www.unix.org/single_unix_specification/</a>.</font> The ISO JTC1/SC22/WG15 - POSIX
|
||||
www.unix.org/single_unix_specification/</a>. The ISO JTC1/SC22/WG15 - POSIX
|
||||
homepage is <a href="http://www.open-std.org/jtc1/sc22/WG15/">
|
||||
www.open-std.org/jtc1/sc22/WG15/</a></td>
|
||||
</tr>
|
||||
@@ -338,7 +338,7 @@ Variable Considered Harmful</i>, ACM SIGPLAN Notices, 8, 2, 1973, pp. 23-34</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
|
||||
<p>© Copyright Beman Dawes, 2002</p>
|
||||
<p> Use, modification, and distribution are subject to the Boost Software
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Do List</title>
|
||||
<style type="text/css">
|
||||
body { font-family: sans-serif; margin: 1em; }
|
||||
@@ -15,14 +15,14 @@
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Boost Filesystem Do List<br>
|
||||
<h1>Boost Filesystem Do List<br/>
|
||||
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->24 June 2010<!--webbot bot="Timestamp" endspan i-checksum="17552" --></h1>
|
||||
|
||||
<h2>Beta 1 comments</h2>
|
||||
<ul>
|
||||
<li dir="ltr">
|
||||
|
||||
<p dir="ltr">Zach Laine:</li>
|
||||
<p dir="ltr">Zach Laine:</p></li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<pre dir="ltr">The descriptions for portable_name() and portable_directory_name()
|
||||
@@ -39,7 +39,7 @@ something?</pre>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li dir="ltr">
|
||||
<p dir="ltr">Scott McMurray - treat as Wish List:</li>
|
||||
<p dir="ltr">Scott McMurray - treat as Wish List:</p></li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<pre dir="ltr">- uncomplete(p, base)
|
||||
@@ -108,10 +108,10 @@ to return paths with fewer elements.]</pre>
|
||||
take a path argument?</li>
|
||||
<li style="font-size: 10pt">Add codepage 936/950/etc test cases.</li>
|
||||
<li style="font-size: 10pt">Should UDT's be supported?</li>
|
||||
<li style="font-size: 10pt">Should path iteration to a separator result in:<br>
|
||||
-- the actual separator used<br>
|
||||
-- the preferred separator<br>
|
||||
-- the generic separator <-- makes it easier to write portable code<br>
|
||||
<li style="font-size: 10pt">Should path iteration to a separator result in:<br/>
|
||||
-- the actual separator used<br/>
|
||||
-- the preferred separator<br/>
|
||||
-- the generic separator <-- makes it easier to write portable code<br/>
|
||||
-- a dot</li>
|
||||
</ul>
|
||||
<h3>Operations</h3>
|
||||
@@ -122,7 +122,7 @@ to return paths with fewer elements.]</pre>
|
||||
or document.</li>
|
||||
<li>Enable all BOOST_FILESYSTEM_NO_DEPRECATED code.</li>
|
||||
<li>rename and remove names are problems. If users says "using
|
||||
namespace boost::filesystem"<br>
|
||||
namespace boost::filesystem"<br/>
|
||||
and some header included stdio, there is just too much chance of silent error.</li>
|
||||
<li>create_directories error handling needs work.</li>
|
||||
<li>Fold convenience.hpp into operations.hpp</li>
|
||||
@@ -136,7 +136,7 @@ to return paths with fewer elements.]</pre>
|
||||
<li style="font-size: 10pt"><i>Regular</i> classes need hash functions.</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2010</p>
|
||||
<p>Distributed under the Boost Software License, Version 1.0. See
|
||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||
|
||||
15
doc/faq.htm
15
doc/faq.htm
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem FAQ</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -15,7 +15,7 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem FAQ</font>
|
||||
</td>
|
||||
@@ -37,6 +37,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>
|
||||
@@ -139,7 +140,7 @@ non-member functions?</b></p>
|
||||
path</i> member
|
||||
functions, while operations performed by the operating system are provided as
|
||||
free functions.</p>
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2002</p>
|
||||
<p> Use, modification, and distribution are subject to the Boost Software
|
||||
License, Version 1.0. See <a href="http://www.boost.org/LICENSE_1_0.txt">
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem Home</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -17,9 +17,9 @@
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle"
|
||||
width="300" height="86" border="0"></a></td>
|
||||
width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Library<br>
|
||||
<font size="7">Filesystem Library<br/>
|
||||
Version 4</font>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -40,6 +40,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p></p>
|
||||
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
|
||||
@@ -50,18 +51,18 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%" bgcolor="#E8F5FF">
|
||||
<a href="#Introduction">Introduction</a><br>
|
||||
<a href="#Documentation">Documentation</a><br>
|
||||
<a href="#Using">Using the library</a><br>
|
||||
<a href="#Coding-guidelines">Coding guidelines</a><br>
|
||||
<a href="#Cautions">Cautions</a><br>
|
||||
<a href="#Headers">Headers</a><br>
|
||||
<a href="#Examples">Example programs</a><br>
|
||||
<a href="#Implementation">Implementation</a><br>
|
||||
<a href="#Macros">Macros</a><br>
|
||||
<a href="#Building">Building the object-library</a><br>
|
||||
<a href="#Cygwin">Notes for Cygwin users</a><br>
|
||||
<a href="#Change-history">Version history<br>
|
||||
<a href="#Introduction">Introduction</a><br/>
|
||||
<a href="#Documentation">Documentation</a><br/>
|
||||
<a href="#Using">Using the library</a><br/>
|
||||
<a href="#Coding-guidelines">Coding guidelines</a><br/>
|
||||
<a href="#Cautions">Cautions</a><br/>
|
||||
<a href="#Headers">Headers</a><br/>
|
||||
<a href="#Examples">Example programs</a><br/>
|
||||
<a href="#Implementation">Implementation</a><br/>
|
||||
<a href="#Macros">Macros</a><br/>
|
||||
<a href="#Building">Building the object-library</a><br/>
|
||||
<a href="#Cygwin">Notes for Cygwin users</a><br/>
|
||||
<a href="#Change-history">Version history<br/>
|
||||
with acknowledgements</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -87,7 +88,7 @@ throwing exceptions.</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><b>Portability between operating systems.</b><br>
|
||||
<li><b>Portability between operating systems.</b><br/>
|
||||
<ul>
|
||||
<li>At the C++ syntax level, it is convenient to learn and use one interface
|
||||
regardless of the operating system.</li>
|
||||
@@ -95,24 +96,24 @@ throwing exceptions.</p>
|
||||
operating systems.</li>
|
||||
<li>Dual generic or native path format support encourages program
|
||||
portability, yet still allows communication with users in system specific
|
||||
formats.<br>
|
||||
formats.<br/>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Error handling and reporting via C++ exceptions (the default) or error
|
||||
codes.</b><br>
|
||||
codes.</b><br/>
|
||||
<ul>
|
||||
<li>C++ exceptions are the preferred error reporting mechanism for most
|
||||
applications. The exception thrown includes the detailed error code
|
||||
information important for diagnosing the exact cause of file system errors.</li>
|
||||
<li>Error reporting via error code allows user code that provides detailed
|
||||
error recovery to avoid becoming so littered with try-catch blocks as to be
|
||||
unmaintainable. <br>
|
||||
unmaintainable. <br/>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Suitable for a broad spectrum of applications, ranging from simple
|
||||
script-like operations to extremely complex production code.</b><br>
|
||||
script-like operations to extremely complex production code.</b><br/>
|
||||
<ul>
|
||||
<li>At the simple script-like end of the spectrum, the intent is not to
|
||||
compete with Python, Perl, or shell languages, but rather to provide
|
||||
@@ -120,15 +121,15 @@ throwing exceptions.</p>
|
||||
<li dir="ltr">
|
||||
<p dir="ltr">Finer grained control over operations and error handling is available to
|
||||
support more complex applications or other cases where throwing exceptions
|
||||
isn't desired.<br>
|
||||
</li>
|
||||
isn't desired.<br/>
|
||||
</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p dir="ltr"><b>Forms the basis for
|
||||
<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf">
|
||||
ISO/IEC TS 18822</a>, the C++ standard library Filesystem Technical
|
||||
Specification.</b></li>
|
||||
Specification.</b></p></li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="Documentation">Documentation</a></h2>
|
||||
@@ -190,11 +191,11 @@ example of the difficulties this can cause, note that the following asserts
|
||||
may fail:</p>
|
||||
<blockquote>
|
||||
<p><code>assert( exists( "foo" ) == exists( "foo" ) ); //
|
||||
(1)<br>
|
||||
<br>
|
||||
remove_all( "foo" );<br>
|
||||
assert( !exists( "foo" ) ); // (2)<br>
|
||||
<br>
|
||||
(1)<br/>
|
||||
<br/>
|
||||
remove_all( "foo" );<br/>
|
||||
assert( !exists( "foo" ) ); // (2)<br/>
|
||||
<br/>
|
||||
assert( is_directory( "foo" ) == is_directory( "foo" ) ); //
|
||||
(3)</code></p>
|
||||
</blockquote>
|
||||
@@ -231,7 +232,7 @@ noexcept</code> never throw exceptions.</p>
|
||||
|
||||
<ul>
|
||||
<li>Header <<a href="../../../boost/filesystem.hpp">boost/filesystem.hpp</a>>
|
||||
provides access to all features of the library, except file streams.<br>
|
||||
provides access to all features of the library, except file streams.<br/>
|
||||
</li>
|
||||
<li>Header <<a href="../../../boost/filesystem/fstream.hpp">boost/filesystem/fstream.hpp</a>>
|
||||
inherits the same components as the C++ Standard
|
||||
@@ -390,7 +391,7 @@ time. Howard Hinnant helped with internationalization issues.</p>
|
||||
<a href="design.htm#Realities">design realities</a> were developed during
|
||||
extensive discussions on the Boost mailing list, followed by comments on the
|
||||
initial implementation. Numerous helpful comments were then received during the
|
||||
Formal Review.<p>Participants included
|
||||
Formal Review. Participants included
|
||||
Aaron Brashears,
|
||||
Alan Bellingham,
|
||||
Aleksey Gurtovoy,
|
||||
@@ -477,7 +478,8 @@ Toon Knapen,
|
||||
Victor Wagner,
|
||||
Vincent Finn,
|
||||
Vladimir Prus, and
|
||||
Yitzhak Sapir
|
||||
Yitzhak Sapir.
|
||||
</p>
|
||||
|
||||
<p>A lengthy discussion on the C++ committee's library reflector illuminated the "illusion
|
||||
of portability" problem, particularly in postings by PJ Plauger and Pete Becker.</p>
|
||||
@@ -485,7 +487,7 @@ of portability" problem, particularly in postings by PJ Plauger and Pete Be
|
||||
<p>Walter Landry provided much help illuminating symbolic link use cases for
|
||||
version 1.31.0. </p>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
|
||||
<p>© Copyright Beman Dawes, 2002-2005</p>
|
||||
<p>© Copyright Andrey Semashev, 2021</p>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem issue reporting</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -14,7 +14,7 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Bug Reporting</font>
|
||||
</td>
|
||||
@@ -36,6 +36,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Boost.Filesystem issues such as bug reports or feature requests should be
|
||||
@@ -184,14 +185,13 @@ need most of them for bug reporting. Here are a few you might find helpful:</p>
|
||||
<ol>
|
||||
<li>A simple test program
|
||||
that:<ul>
|
||||
<li dir="ltr">
|
||||
<p dir="ltr">Illustrates the problem <b>[Code communicates more clearly than
|
||||
<li dir="ltr">Illustrates the problem <b>[Code communicates more clearly than
|
||||
prose. If it looks like it will it will take some time to figure out exactly what the
|
||||
problem is, or worse yet, might result in a wild-goose chase, the bug report
|
||||
gets set aside to be worked on later and then is often forgotten.] </b>and</li>
|
||||
gets set aside to be worked on later and then is often forgotten.]</b> and</li>
|
||||
<li>Automatically yields an unambiguous pass or fail result - returning zero
|
||||
for pass and non-zero for fail is preferred <b>[Prevents
|
||||
miscommunications and allows use in automatic regression tests.]</b>, and </li>
|
||||
miscommunications and allows use in automatic regression tests.]</b>, and</li>
|
||||
<li>Can be used as the basis for adding tests to Boost.Filesystem's
|
||||
regression test suite <b>[With good test cases fixes come easier and
|
||||
regressions become less likely]</b>.</li>
|
||||
@@ -201,7 +201,7 @@ that:<ul>
|
||||
used to build and run your test program. <b>[The implementation includes much
|
||||
platform dependent code, and also depends on the other factors mentioned. Know
|
||||
these things upfront brings the bug report into focus without having to ask
|
||||
for more information. ]</b></li>
|
||||
for more information.]</b></li>
|
||||
<li>A description of how to build and run the test program. <b>[If b2
|
||||
(formerly known as bjam) is used as the build engine, this is not a concern,
|
||||
but otherwise much more information is needed.]</b></li>
|
||||
@@ -211,7 +211,7 @@ that:<ul>
|
||||
primary means of response, but it is disheartening when a trac question is not
|
||||
answered and there is no email address attached for followup.]</b></li>
|
||||
</ol>
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2014</p>
|
||||
<p>© Copyright Andrey Semashev, 2019, 2021</p>
|
||||
<p> Distributed under the Boost Software
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Portability Guide</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<h1>
|
||||
<img border="0" src="../../../boost.png" align="center" width="300" height="86">Path
|
||||
<img border="0" src="../../../boost.png" align="center" width="300" height="86"/>Path
|
||||
Name Portability
|
||||
Guide</h1>
|
||||
|
||||
@@ -31,11 +31,12 @@ Guide</h1>
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
<a href="#Introduction">Introduction</a><br>
|
||||
<a href="#name_check_functions">name_check functions</a><br>
|
||||
<a href="#Introduction">Introduction</a><br/>
|
||||
<a href="#name_check_functions">name_check functions</a><br/>
|
||||
<a href="#recommendations">File and directory name recommendations</a></p>
|
||||
<h2><a name="Introduction">Introduction</a></h2>
|
||||
<p>Like any other C++ program which performs I/O operations, there is no
|
||||
@@ -92,10 +93,10 @@ portability yet not overly restrict expressiveness.</p>
|
||||
std::string&<i> name</i>)</code></td>
|
||||
<td><b>Returns:</b> <i>true</i> if <code>!name.empty() && name</code> contains only the characters
|
||||
specified in<i> Portable Filename Character Set</i> rules as defined in by
|
||||
POSIX (<a href="http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html">www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html</a>).<br>
|
||||
POSIX (<a href="http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html">www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html</a>).<br/>
|
||||
The allowed characters are <code>0-9</code>, <code>a-z</code>, <code>A-Z</code>,
|
||||
<code>'.'</code>, <code>'_'</code>, and <code>'-'</code>.<p><b>Use:</b>
|
||||
applications which must be portable to any POSIX system.</td>
|
||||
applications which must be portable to any POSIX system.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><code><a name="windows_name">windows_name</a>(const
|
||||
@@ -111,7 +112,7 @@ portability yet not overly restrict expressiveness.</p>
|
||||
<p><b>Note:</b> Reserved device names are not valid as file names, but are
|
||||
not being detected because they are still valid as a path. Specifically,
|
||||
CON, PRN, AUX, CLOCK$, NUL, COM[1-9], LPT[1-9], and these names followed by
|
||||
an extension (for example, NUL.tx7).</td>
|
||||
an extension (for example, NUL.tx7).</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><code><a name="portable_name">portable_name</a>(const
|
||||
@@ -120,14 +121,14 @@ portability yet not overly restrict expressiveness.</p>
|
||||
&& (name</code> is <code>"."</code> or <code>".."</code>, and the first character not a period or hyphen<code>)</code>.<p><b>Use:</b> applications which must be portable to a wide variety of
|
||||
modern operating systems, large and small, and to some legacy O/S's. The
|
||||
first character not a period or hyphen restriction is a requirement of
|
||||
several older operating systems.</td>
|
||||
several older operating systems.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><code><a name="portable_directory_name">
|
||||
portable_directory_name</a>(const std::string&<i> name</i>)</code></td>
|
||||
<td><b>Returns:</b> <code>portable_name(name) && (name</code> is <code>"."</code>
|
||||
or <code>".."</code> or contains no periods<code>)</code>.<p><b>Use:</b> applications
|
||||
which must be portable to a wide variety of platforms, including OpenVMS.</td>
|
||||
which must be portable to a wide variety of platforms, including OpenVMS.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><code><a name="portable_file_name">
|
||||
@@ -136,7 +137,7 @@ portability yet not overly restrict expressiveness.</p>
|
||||
non-period characters.<p><b>Use:</b>
|
||||
applications which must be portable to a wide variety of platforms,
|
||||
including OpenVMS and other systems which have a concept of "file extension"
|
||||
but limit its length.</td>
|
||||
but limit its length.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><code><a name="native">native</a>(const
|
||||
@@ -145,7 +146,7 @@ portability yet not overly restrict expressiveness.</p>
|
||||
true</i> for names considered valid by the operating system's native file
|
||||
systems.<p><b>Note:</b> May return <i>true</i> for some names not considered valid
|
||||
by the operating system under all conditions (particularly on operating systems which support
|
||||
multiple file systems.)</td>
|
||||
multiple file systems.)</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -160,7 +161,7 @@ portability yet not overly restrict expressiveness.</p>
|
||||
<tr>
|
||||
<td valign="top">Limit file and directory names to the characters A-Z, a-z, 0-9, period, hyphen, and
|
||||
underscore.<p>Use any of the "portable_" <a href="#name_check_functions">
|
||||
name check functions</a> to enforce this recommendation.</td>
|
||||
name check functions</a> to enforce this recommendation.</p></td>
|
||||
<td valign="top">These are the characters specified by the POSIX standard for portable directory and
|
||||
file names, and are also valid for Windows, Mac, and many other modern file systems.</td>
|
||||
</tr>
|
||||
@@ -170,7 +171,7 @@ portability yet not overly restrict expressiveness.</p>
|
||||
Use <a href="#portable_name">portable_name</a>,
|
||||
<a href="#portable_directory_name">portable_directory_name</a>, or
|
||||
<a href="#portable_file_name">portable_file_name</a> to enforce this
|
||||
recommendation.</td>
|
||||
recommendation.</p></td>
|
||||
<td valign="top">Some operating systems treat have special rules for the
|
||||
first character of names. POSIX, for example. Windows does not permit period
|
||||
as the last character.</td>
|
||||
@@ -178,14 +179,14 @@ portability yet not overly restrict expressiveness.</p>
|
||||
<tr>
|
||||
<td valign="top">Do not use periods in directory names.<p>Use
|
||||
<a href="#portable_directory_name">portable_directory_name</a> to enforce
|
||||
this recommendation.</td>
|
||||
this recommendation.</p></td>
|
||||
<td valign="top">Requirement for ISO-9660 without Juliet extensions, OpenVMS filesystem, and other legacy systems.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">Do not use more that one period in a file name, and limit
|
||||
the portion after the period to three characters.<p>Use
|
||||
<a href="#portable_file_name">portable_file_name</a> to enforce this
|
||||
recommendation.</td>
|
||||
recommendation.</p></td>
|
||||
<td valign="top">Requirement for ISO-9660 level 1, OpenVMS filesystem, and
|
||||
other legacy systems. </td>
|
||||
</tr>
|
||||
@@ -217,18 +218,18 @@ portability yet not overly restrict expressiveness.</p>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">Limit the length of any one name in a path. Pick the specific limit according to
|
||||
the operating systems and or file systems you wish portability to:<br>
|
||||
Not a concern:: POSIX, Windows, MAC OS X.<br>
|
||||
31 characters: Classic Mac OS<br>
|
||||
8 characters + period + 3 characters: ISO 9660 level 1<br>
|
||||
32 characters: ISO 9660 level 2 and 3<br>
|
||||
the operating systems and or file systems you wish portability to:<br/>
|
||||
Not a concern:: POSIX, Windows, MAC OS X.<br/>
|
||||
31 characters: Classic Mac OS<br/>
|
||||
8 characters + period + 3 characters: ISO 9660 level 1<br/>
|
||||
32 characters: ISO 9660 level 2 and 3<br/>
|
||||
128 characters (64 if Unicode): ISO 9660 with Juliet extensions</td>
|
||||
<td valign="top">Limiting name length can markedly reduce the expressiveness of file names, yet placing
|
||||
only very high limits on lengths inhibits widest portability.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
|
||||
<p>© Copyright Beman Dawes, 2002, 2003</p>
|
||||
<p> Use, modification, and distribution are subject to the Boost Software
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem Relative Proposal</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -15,9 +15,9 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Relative<br>
|
||||
<font size="7">Filesystem Relative<br/>
|
||||
Draft Proposal</font>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -38,40 +38,41 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><a href="#Introduction">
|
||||
Introduction</a><br>
|
||||
<a href="#Acknowledgement">Acknowledgement</a><br>
|
||||
<a href="#Preliminary-implementation">Preliminary implementation</a><br>
|
||||
<a href="#Requirements">Requirements</a><br>
|
||||
<a href="#Issues">Issues</a><br>
|
||||
Introduction</a><br/>
|
||||
<a href="#Acknowledgement">Acknowledgement</a><br/>
|
||||
<a href="#Preliminary-implementation">Preliminary implementation</a><br/>
|
||||
<a href="#Requirements">Requirements</a><br/>
|
||||
<a href="#Issues">Issues</a><br/>
|
||||
<a href="#Design-decisions">
|
||||
Design decisions</a><br>
|
||||
Design decisions</a><br/>
|
||||
<a href="#Provide-separate-relative">Provide separate lexical and
|
||||
operational <code>relative</code> functions</a><br>
|
||||
operational <code>relative</code> functions</a><br/>
|
||||
<a href="#Provide-separate-proximate">Provide
|
||||
separate lexical and operational <code>proximate</code> functions</a><br>
|
||||
<a href="#Add-lexical-functions">Add lexical functions as <code>path</code> member functions</a><br>
|
||||
separate lexical and operational <code>proximate</code> functions</a><br/>
|
||||
<a href="#Add-lexical-functions">Add lexical functions as <code>path</code> member functions</a><br/>
|
||||
<a href="#Provide-normal">Provide a non-member function
|
||||
<code>lexically_normal</code> returning a
|
||||
normal form path</a><br>
|
||||
<a href="#Provide-weakly">Provide a <code>weakly_canonical</code> operational function</a><br>
|
||||
<a href="#just-work">Resolve issues in ways that "just work" for users</a><br>
|
||||
normal form path</a><br/>
|
||||
<a href="#Provide-weakly">Provide a <code>weakly_canonical</code> operational function</a><br/>
|
||||
<a href="#just-work">Resolve issues in ways that "just work" for users</a><br/>
|
||||
<a href="#mismatch">Specify <code>lexical relative</code> in terms
|
||||
of <code>std::mismatch</code></a><br>
|
||||
of <code>std::mismatch</code></a><br/>
|
||||
<a href="#Specify-op-rel-weakly">Specify operational <code>relative</code> in terms of <code>
|
||||
weakly_canonical</code></a><br>
|
||||
weakly_canonical</code></a><br/>
|
||||
<a href="#Specify-op-rel-lex-rel">Specify operational <code>relative</code> in terms of
|
||||
<code>lexically
|
||||
relative</code></a><br>
|
||||
<a href="#Proposed-wording">Proposed wording</a><br>
|
||||
<a href="#Define-normal-form">Define <i>normal form</i></a><br>
|
||||
<a href="#New-class-path-member-functions">New class path member functions</a><br>
|
||||
<a href="#Synopsis-path">Synopsis</a><br>
|
||||
<a href="#Specification-path">Specification</a><br>
|
||||
<a href="#operational-functions">New operational functions</a><br>
|
||||
<a href="#Synopsis-ops">Synopsis</a><br>
|
||||
relative</code></a><br/>
|
||||
<a href="#Proposed-wording">Proposed wording</a><br/>
|
||||
<a href="#Define-normal-form">Define <i>normal form</i></a><br/>
|
||||
<a href="#New-class-path-member-functions">New class path member functions</a><br/>
|
||||
<a href="#Synopsis-path">Synopsis</a><br/>
|
||||
<a href="#Specification-path">Specification</a><br/>
|
||||
<a href="#operational-functions">New operational functions</a><br/>
|
||||
<a href="#Synopsis-ops">Synopsis</a><br/>
|
||||
<a href="#Specification-ops">Specification</a></p>
|
||||
|
||||
<h2>
|
||||
@@ -353,7 +354,7 @@ path lexically_proximate(const path& base) const;</pre>
|
||||
<p><i>Returns:</i> <code>*this</code> in <a href="#normal-form">normal form</a>.</p>
|
||||
<p><i>Remarks:</i> Uses <code>operator/=</code> to compose the returned path.</p>
|
||||
<p>[<i>Example:</i></p>
|
||||
<p><code>assert(path("foo/./bar/..").lexically_normal() == "foo");<br>
|
||||
<p><code>assert(path("foo/./bar/..").lexically_normal() == "foo");<br/>
|
||||
assert(path("foo/.///bar/../").lexically_normal() == "foo/.");</code></p>
|
||||
<p>The above assertions will succeed.<i> </i>On Windows, the
|
||||
returned path's <i>directory-separator</i> characters will be backslashes rather than slashes, but that
|
||||
@@ -376,13 +377,13 @@ does not affect <code>path</code> equality.<i> —end example</i>]</p>
|
||||
<li>
|
||||
<code>path()</code> if the first mismatched element of <code>*this</code> is equal to <code>
|
||||
begin()</code> or the first mismatched element
|
||||
of <code>base</code> is equal to <code>base.begin()</code>, or<br>
|
||||
of <code>base</code> is equal to <code>base.begin()</code>, or<br/>
|
||||
</li>
|
||||
<li>
|
||||
<code>path(".")</code> if the first mismatched element of <code>
|
||||
*this</code> is equal to <code>
|
||||
end()</code> and the first mismatched element
|
||||
of <code>base</code> is equal to <code>base.end()</code>, or<br>
|
||||
of <code>base</code> is equal to <code>base.end()</code>, or<br/>
|
||||
</li>
|
||||
<li>An object of class <code>path</code> composed via application of <code>
|
||||
operator/= path("..")</code> for each element in the half-open
|
||||
@@ -395,11 +396,11 @@ does not affect <code>path</code> equality.<i> —end example</i>]</p>
|
||||
</ul>
|
||||
|
||||
<p>[<i>Example:</i></p>
|
||||
<p><code>assert(path("/a/d").lexically_relative("/a/b/c") == "../../d");<br>
|
||||
assert(path("/a/b/c").lexically_relative("/a/d") == "../b/c");<br>
|
||||
assert(path("a/b/c").lexically_relative("a") == "b/c");<br>
|
||||
assert(path("a/b/c").lexically_relative("a/b/c/x/y") == "../..");<br>
|
||||
assert(path("a/b/c").lexically_relative("a/b/c") == ".");<br>
|
||||
<p><code>assert(path("/a/d").lexically_relative("/a/b/c") == "../../d");<br/>
|
||||
assert(path("/a/b/c").lexically_relative("/a/d") == "../b/c");<br/>
|
||||
assert(path("a/b/c").lexically_relative("a") == "b/c");<br/>
|
||||
assert(path("a/b/c").lexically_relative("a/b/c/x/y") == "../..");<br/>
|
||||
assert(path("a/b/c").lexically_relative("a/b/c") == ".");<br/>
|
||||
assert(path("a/b").lexically_relative("c/d") == "");</code></p>
|
||||
<p>The above assertions will succeed.<i> </i>On Windows, the
|
||||
returned path's <i>directory-separator</i>s will be backslashes rather than
|
||||
@@ -499,7 +500,7 @@ path proximate(const path& p, const path& base, system::error_code&
|
||||
<p><i>Throws:</i> As specified in Error reporting.</p>
|
||||
</blockquote>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes 2015</p>
|
||||
<p>Distributed under the Boost Software License, Version 1.0. See
|
||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem Release History</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -15,7 +15,7 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Release History</font>
|
||||
</td>
|
||||
@@ -37,6 +37,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>1.85.0</h2>
|
||||
@@ -84,7 +85,7 @@
|
||||
<li>Due to changes in Boost.System and some other libraries used in Boost.Filesystem, the support for C++03 is deprecated. C++11 will become the minimum starting with Boost.Filesystem 1.84.</li>
|
||||
<li>Fixed compilation errors that could have been caused by <code>path</code> conversion constructors being too permissive on the accepted arguments. (<a href="https://github.com/boostorg/filesystem/issues/273">#273</a>)</li>
|
||||
<li><b>v4:</b> <code>path::remove_filename</code> now presesrves the trailing directory separator. (<a href="https://github.com/boostorg/filesystem/issues/271">#271</a>)</li>
|
||||
<li>Added <code>path::remove_filename_and_trailing_separators</li>, which removes the filename and directory separators preceding it from the path. This behavior is similar to <code>path::remove_filename</code> in Filesystem <b>v3</b>, but is also usable in <b>v4</b>.
|
||||
<li>Added <code>path::remove_filename_and_trailing_separators</code>, which removes the filename and directory separators preceding it from the path. This behavior is similar to <code>path::remove_filename</code> in Filesystem <b>v3</b>, but is also usable in <b>v4</b>.</li>
|
||||
<li>Added <code>path::replace_filename</code>, which replaces filename in a path.</li>
|
||||
<li>Updated implementation of the library version selection to avoid ODR violations. (<a href="https://github.com/boostorg/filesystem/issues/279">#279</a>)</li>
|
||||
<li>On Windows, added a workaround for querying file attributes for files in SMBv1 shares. Previously, directories in SMBv1 shares could have been reported as regular files. This does not affect SMBv2 or later. (<a href="https://github.com/boostorg/filesystem/issues/282">#282</a>)</li>
|
||||
@@ -210,7 +211,7 @@
|
||||
<li><code>equivalent</code> on POSIX systems now returns the actual error code from the OS if one of the paths does not resolve to a file. Previously the function would return an error code of 1. (<a href="https://github.com/boostorg/filesystem/issues/141">#141</a>)</li>
|
||||
<li><code>equivalent</code> no longer considers file size and last modification time in order to test whether the two paths refer to the same file. These checks could result in a false negative if the file was modified during the <code>equivalent</code> call.</li>
|
||||
<li><b>New:</b> Added <code>absolute</code> overloads taking <code>error_code</code> argument.</li>
|
||||
<li>Operations that have <code>current_path()</code> as the default value of their arguments and also have an <code>error_code</code> argument will use the <code>current_path(error_code& ec)</code> overload to obtain the current path, so that its failure is reported via the <code>error_code</code> argument instead of an exception.</li>
|
||||
<li>Operations that have <code>current_path()</code> as the default value of their arguments and also have an <code>error_code</code> argument will use the <code>current_path(error_code& ec)</code> overload to obtain the current path, so that its failure is reported via the <code>error_code</code> argument instead of an exception.</li>
|
||||
<li><code>space</code> now initializes the <code>space_info</code> structure members to -1 values on error, as required by C++20 ([fs.op.space]/1).</li>
|
||||
<li><code>space</code> on Windows now accepts paths referring to arbitrary files, not only directories. This is similar to POSIX systems and corresponds to the operation description in C++20. (<a href="https://github.com/boostorg/filesystem/issues/73">#73</a>)</li>
|
||||
<li><b>New:</b> Added implementation of <code>temp_directory_path</code> for Windows CE. (<a href="https://github.com/boostorg/filesystem/pull/25">PR#25</a>)</li>
|
||||
@@ -306,7 +307,7 @@
|
||||
gives problems in C++/CLI.</i> Unless the macro BOOST_FILESYSTEM_NO_DEPRECATED
|
||||
is defined, the original <code>generic()</code> will continue to be supplied
|
||||
as a workaround for existing user code. But <code>generic()</code>is
|
||||
deprecated. User code should migrate to the new name.</li>
|
||||
deprecated. User code should migrate to the new name.</p></li>
|
||||
<li><b>New:</b> Class <code>path</code> adds constexpr constants <code>
|
||||
separator</code> and <code>dot</code> of the type appropriate for the
|
||||
platform, and adds query functions <a href="reference.html#filename_is_dot">
|
||||
@@ -352,7 +353,7 @@
|
||||
perseverance. Resolves tickets
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/1976">#1976</a>,
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/5897">#5897</a>,
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a></li>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a></p></li>
|
||||
<li><b>New:</b> Class <code>path</code> now has
|
||||
<a href="reference.html#path-iterators"> <code>reverse_iterator</code>,
|
||||
<code>const_reverse_iterator</code>, <code>rbegin()</code>, and <code>rend()</code></a>. </li>
|
||||
@@ -393,7 +394,7 @@
|
||||
<li>
|
||||
<p>Fix <a href="https://svn.boost.org/trac/boost/ticket/11288">#11288</a>, <i>
|
||||
<font face="Arial">A patch to avoid redundant string allocations</font></i>,
|
||||
by applying a patch submitted by Yevhen Ivannikov.</li>
|
||||
by applying a patch submitted by Yevhen Ivannikov.</p></li>
|
||||
<li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11175">#11175</a>,
|
||||
out-of-date documentation causing users to incorrectly expect that the library
|
||||
could be used with exceptions disabled.</li>
|
||||
@@ -404,11 +405,11 @@
|
||||
<p>Fix <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>,
|
||||
<i><code>create_directories</code> returns false if the path ends with a slash</i>.
|
||||
Also fix related issues if path contains <i>dot</i> or <i>dot-dot</i>
|
||||
elements, and added test cases to the test suite.</li>
|
||||
elements, and added test cases to the test suite.</p></li>
|
||||
<li>
|
||||
<p>Reference docs editorial cleanups: Use same style sheet as the
|
||||
rest of the documentation. Tweak tab font size. Fix excessively long lines in
|
||||
tables, synopsis.</li>
|
||||
tables, synopsis.</p></li>
|
||||
<li>Resolve <a href="https://svn.boost.org/trac/boost/ticket/10766">
|
||||
#10766</a>, <i>parent_path() with redundant separator returns wrong value</i>,
|
||||
by adding examples and notes to the reference documentation to show why the
|
||||
@@ -694,7 +695,7 @@
|
||||
fixing missing and broken links, and adding missing functions.</li>
|
||||
<li>Miscellaneous implementation code cleanup. </li>
|
||||
</ul>
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2011</p>
|
||||
<p>© Copyright Andrey Semashev, 2019-2021</p>
|
||||
<p> Use, modification, and distribution are subject to the Boost Software
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem Tickets</title>
|
||||
</head>
|
||||
|
||||
@@ -13,27 +13,27 @@
|
||||
<p> </p>
|
||||
<h2>Locale related</h2>
|
||||
<p><a href="https://svn.boost.org/trac/boost/ticket/3332">#3332</a>
|
||||
boost::filesystem::path will get trouble in locale Chinese_Taiwan.950 (windows)<br>
|
||||
boost::filesystem::path will get trouble in locale Chinese_Taiwan.950 (windows)<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/7211">#7211</a> path_locale
|
||||
destructor crashes when overloaded operator new and delete are present<br>
|
||||
destructor crashes when overloaded operator new and delete are present<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/8388">#8388</a>
|
||||
windows_file_codecvt should be allocated with _NEW_CRT<br>
|
||||
windows_file_codecvt should be allocated with _NEW_CRT<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/8642">#8642</a> Global locale
|
||||
prevents from using Boost.Filesystem in global constructors and destructors<br>
|
||||
prevents from using Boost.Filesystem in global constructors and destructors<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/8930">#8930</a>
|
||||
boost::path::root_directory() throws locale::facet::_S_create_c_locale name not
|
||||
valid<br>
|
||||
valid<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/9182">#9182</a>
|
||||
Boost-filesystem std::runtime_error: locale::facet::_S_create_c_locale name not
|
||||
valid failure on Xamarin.Android<br>
|
||||
valid failure on Xamarin.Android<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/9219">#9219</a> path::codecvt()
|
||||
is called when not required<br>
|
||||
is called when not required<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/9560">#9560</a>
|
||||
operations_test_static unit test crashes during static initialization phase on
|
||||
Mac/10.7/32-bit/darwin-4.2.1<br>
|
||||
Mac/10.7/32-bit/darwin-4.2.1<br/>
|
||||
<a href="https://svn.boost.org/trac/boost/ticket/10205">#10205</a> FileSystem
|
||||
runtime error: locale::facet::_S_create_c_locale name not valid<br>
|
||||
<br>
|
||||
runtime error: locale::facet::_S_create_c_locale name not valid<br/>
|
||||
<br/>
|
||||
</p>
|
||||
<h2>TR alignment</h2>
|
||||
<p>Work has started to bring the library into alignment with the C++ File System
|
||||
|
||||
42
doc/v3.html
42
doc/v3.html
@@ -1,11 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem V3 Intro</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -13,10 +14,10 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem
|
||||
Version 3<br>
|
||||
Version 3<br/>
|
||||
Introduction</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -36,6 +37,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Boost Filesystem Version 3</h1>
|
||||
@@ -49,21 +51,21 @@ changes include:</p>
|
||||
and <code>wpath</code> instantiations. Character types <code>char</code>,
|
||||
<code>wchar_t</code>, <code>char16_t</code>, and <code>char32_t</code> are
|
||||
supported. This is a major simplification of the path abstraction,
|
||||
particularly for functions that take path arguments.<br>
|
||||
particularly for functions that take path arguments.<br/>
|
||||
</li>
|
||||
<li>New <code>class path</code> members include:<br>
|
||||
<li>New <code>class path</code> members include:<br/>
|
||||
<ul>
|
||||
<li><code><a href="reference.html#path-has_stem">has_stem</a>()</code></li>
|
||||
<li><code><a href="reference.html#path-has_extension">has_extension</a>()</code></li>
|
||||
<li><code><a href="reference.html#path-is_absolute">is_absolute</a>()</code>. This renames <code>is_complete()</code>, which
|
||||
is now deprecated.</li>
|
||||
<li><code><a href="reference.html#path-is_relative">is_relative</a>()</code></li>
|
||||
<li><code><a href="reference.html#path-make_preferred">make_preferred</a>()<br>
|
||||
<li><code><a href="reference.html#path-make_preferred">make_preferred</a>()<br/>
|
||||
</code></li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
<li>New or improved operations functions include:<br>
|
||||
<li>New or improved operations functions include:<br/>
|
||||
<ul>
|
||||
<li><code><a href="reference.html#absolute">absolute</a>()</code>. This replaces the operations function <code>
|
||||
complete()</code>, which is now deprecated. Semantics are now provided for a
|
||||
@@ -75,14 +77,14 @@ changes include:</p>
|
||||
<li><code><a href="reference.html#resize_file">resize_file</a>()</code> function added. Supported on both POSIX and
|
||||
Windows. Used to shrink or grow a regular file.</li>
|
||||
<li><code><a href="reference.html#unique_path">unique_path</a>()</code> function added. Supported on both POSIX and
|
||||
Windows. Used to generate a secure temporary pathname.<br>
|
||||
Windows. Used to generate a secure temporary pathname.<br/>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Support for error reporting via <code>error_code</code> is now uniform
|
||||
throughout the operations functions.<br>
|
||||
throughout the operations functions.<br/>
|
||||
</li>
|
||||
<li>Documentation has been reworked, including re-writes of major portions.<br>
|
||||
<li>Documentation has been reworked, including re-writes of major portions.<br/>
|
||||
</li>
|
||||
<li>A new <a href="tutorial.html">Tutorial</a> provides a hopefully much
|
||||
gentler and more complete introduction for new users. Current users might want
|
||||
@@ -105,7 +107,7 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
|
||||
overloaded functions, that depends on <code>path</code> and <code>wpath</code>
|
||||
being two distinct types will fail to compile and must be restructured.
|
||||
Restructuring may be as simple as removing one of the overloads, but also
|
||||
might require more complex redesign.<br>
|
||||
might require more complex redesign.<br/>
|
||||
</li>
|
||||
<li>Certain functions now return <code>path</code> objects rather than <code>
|
||||
string or wstring</code> objects:<ul>
|
||||
@@ -119,8 +121,8 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
|
||||
accepts a <code>path</code>, all is well. If the result is being used in a
|
||||
context requiring a <code>std::string</code> or <code>std::wstring</code>,
|
||||
then <code>.string()</code> or <code>.wstring()</code> respectively must be
|
||||
appended to the function call.<br>
|
||||
</li>
|
||||
appended to the function call.<br/>
|
||||
</p></li>
|
||||
<li> <code>path::iterator::value_type</code> and <code>
|
||||
path::const_iterator::value_type</code> is <code>path</code> rather than <code>
|
||||
basic_string</code>.</li>
|
||||
@@ -129,18 +131,18 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
|
||||
<ul>
|
||||
<li>Compilers and standard libraries that do not fully support wide characters
|
||||
and wide character strings (<code>std::wstring</code>) are no longer
|
||||
supported.<br>
|
||||
supported.<br/>
|
||||
</li>
|
||||
<li>Cygwin versions prior to 1.7 are no longer supported because they lack
|
||||
wide string support. Cygwin now compiles only for the Windows API and path
|
||||
syntax.<br>
|
||||
syntax.<br/>
|
||||
</li>
|
||||
<li>MinGW versions not supporting wide strings are no longer supported.<br>
|
||||
<li>MinGW versions not supporting wide strings are no longer supported.<br/>
|
||||
</li>
|
||||
<li>Microsoft VC++ 7.1 and earlier are no longer supported.</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2009</p>
|
||||
<p>Distributed under the Boost Software License, Version 1.0. See
|
||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us"/>
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"/>
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem V3 Design</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -17,9 +17,9 @@
|
||||
<td>
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" border="0"
|
||||
width="300" height="86"></a></td>
|
||||
width="300" height="86"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem Version 3<br>
|
||||
<font size="7">Filesystem Version 3<br/>
|
||||
Design</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -39,6 +39,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
|
||||
@@ -49,11 +50,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%" bgcolor="#E8F5FF">
|
||||
<a href="#Introduction">Introduction</a><br>
|
||||
<a href="#Problem">Problem</a><br>
|
||||
<a href="#Solution">Solution</a><br>
|
||||
<a href="#Details">Details</a><br>
|
||||
<a href="#Other-changes">Other changes</a><br>
|
||||
<a href="#Introduction">Introduction</a><br/>
|
||||
<a href="#Problem">Problem</a><br/>
|
||||
<a href="#Solution">Solution</a><br/>
|
||||
<a href="#Details">Details</a><br/>
|
||||
<a href="#Other-changes">Other changes</a><br/>
|
||||
<a href="#Acknowledgements">Acknowledgements</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -143,15 +144,15 @@ flexible user code.</p>
|
||||
bordercolor="#111111" width="100%">
|
||||
<tr>
|
||||
<td width="33%" colspan="3">
|
||||
<p align="center"><b><i>Encoding </i></b><i><b>Conversions</b></i></td>
|
||||
<p align="center"><b><i>Encoding </i></b><i><b>Conversions</b></i></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="33%">
|
||||
<p align="center"><i><b>Host system</b></i></td>
|
||||
<p align="center"><i><b>Host system</b></i></p></td>
|
||||
<td width="33%">
|
||||
<p align="center"><i><b>char string path arguments</b></i></td>
|
||||
<p align="center"><i><b>char string path arguments</b></i></p></td>
|
||||
<td width="34%">
|
||||
<p align="center"><i><b>wide string path arguments</b></i></td>
|
||||
<p align="center"><i><b>wide string path arguments</b></i></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="33%">Systems with <code>char</code> as the native API path character type (i.e.
|
||||
@@ -186,7 +187,7 @@ multiple character types and encodings. Walter Landry contributed both the desig
|
||||
and implementation of the copy_any,
|
||||
copy_directory, copy_symlink, and read_symlink functions.</p>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
|
||||
<p>© Copyright Beman Dawes, 2008</p>
|
||||
<p> Use, modification, and distribution are subject to the Boost Software
|
||||
|
||||
12
doc/v4.html
12
doc/v4.html
@@ -1,9 +1,10 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>Filesystem V4</title>
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -11,10 +12,10 @@
|
||||
<tr>
|
||||
<td width="277">
|
||||
<a href="../../../index.htm">
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
|
||||
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
|
||||
<td align="middle">
|
||||
<font size="7">Filesystem
|
||||
Version 4<br></font></td>
|
||||
Version 4<br/></font></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -33,6 +34,7 @@
|
||||
<a href="deprecated.html">Deprecated</a>
|
||||
<a href="issue_reporting.html">Bug Reports </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Boost Filesystem Version 4</h1>
|
||||
@@ -61,7 +63,7 @@ It removes the features that were <a href="deprecated.html">deprecated</a> in Ve
|
||||
<li><a href="reference.html#equivalent"><code>equivalent</code></a> now fails if only one of the input paths exists.</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Andrey Semashev, 2021-2024</p>
|
||||
<p>Distributed under the Boost Software License, Version 1.0. See
|
||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0; URL=doc/index.htm">
|
||||
<meta http-equiv="refresh" content="0; URL=doc/index.htm"/>
|
||||
</head>
|
||||
<body>
|
||||
Automatic redirection failed, please go to
|
||||
<a href="doc/index.htm">doc/index.htm</a>.
|
||||
<hr>
|
||||
<hr/>
|
||||
<p>© Copyright Beman Dawes, 2003</p>
|
||||
<p> Distributed under the Boost Software License, Version 1.0.
|
||||
See http://www.boost.org/LICENSE_1_0.txt</p>
|
||||
|
||||
Reference in New Issue
Block a user