[#BloombergLP-bdls]
= xref:BloombergLP.adoc[BloombergLP]::bdls
:relfileprefix: ../
:mrdocs:

Namespace for platform&hyphen;independent filesystem utility functions&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdls/FdStreamBuf.adoc[`FdStreamBuf`] 
| This class, derived from the C&plus;&plus; standard library class `bsl&colon;&colon;streambuf`, is a mechanism that can be associated with an opened file descriptor, and, except for changing the locale, enables the caller to invoke all the standard `bsl&colon;&colon;streambuf` operations on that file descriptor&period; Note that objects of this class are always in exactly one of the 5 modes outlined in the enum `FdStreamBuf&colon;&colon;FdStreamBufMode`&period;
| xref:BloombergLP/bdls/FdStreamBuf_FileHandler.adoc[`FdStreamBuf&lowbar;FileHandler`] 
| This private helper class isolates direct operations on files from the `FdStreamBuf` class&semi; it is a thin wrapper around `FilesystemUtil`&period; One service this class provides is converting between an in&hyphen;process &grave; &grave; and its corresponding on&hyphen;file &grave;&bsol;r &grave; when writing to or reading from a Windows text file&period; On `reset` an object of this type is associated with a supplied file descriptor, after which it can do simple operations on that file descriptor in the service of a `FdStreamBuf`&period;
| xref:BloombergLP/bdls/FileDescriptorGuard.adoc[`FileDescriptorGuard`] 
| This class implements a guard that conditionally closes an open file descriptor upon its destruction&period;
| xref:BloombergLP/bdls/FilePermissions.adoc[`FilePermissions`] 
| This `struct` provides a namespace for a `std&colon;&colon;filesystem&colon;&colon;perms`&hyphen;style enumeration of file&hyphen;system permission bits, and a pair of predicates for validating an `int` bit mask against that enumeration&period;
| xref:BloombergLP/bdls/FilesystemUtil.adoc[`FilesystemUtil`] 
| This `struct` provides a namespace for utility functions dealing with platform&hyphen;independent filesystem access&period;
| xref:BloombergLP/bdls/FilesystemUtil_CStringUtil.adoc[`FilesystemUtil&lowbar;CStringUtil`] 
| This component&hyphen;private utility `struct` provides a namespace for the `flatten` overload set intended to be used in concert with an overload set consisting of a function template with a deduced argument and an non&hyphen;template overload accepting a `const char &ast;`&period; The actual implementation of the functionality would be in the `const char &ast;` overload whereas the purpose of the function template is to invoke the `const char &ast;` overload with a null&hyphen;terminated string&period;
| xref:BloombergLP/bdls/FilesystemUtil_TransitionalUnixImpUtil.adoc[`FilesystemUtil&lowbar;TransitionalUnixImpUtil`] 
| This component&hyphen;private utility `struct` provides a namespace for a suite of functions that `FilesystemUtil` uses as implementation details&period; These functions have a `UNIX&lowbar;INTERFACE` template parameter, which provides access to the entities that transitional&hyphen;compilation environment Unix systems declare, and that the function implementations need&period;
| xref:BloombergLP/bdls/FilesystemUtil_UnixImpUtil.adoc[`FilesystemUtil&lowbar;UnixImpUtil`] 
| This component&hyphen;private utility `struct` provides a namespace for a suite of functions that `FilesystemUtil` uses as implementation details&period; These functions have a `UNIX&lowbar;INTERFACE` template parameter, which provides access to the entities that large&hyphen;file environment Unix systems declare, and that the function implementations need&period;
| xref:BloombergLP/bdls/FilesystemUtil_WindowsImpUtil.adoc[`FilesystemUtil&lowbar;WindowsImpUtil`] 
| This component&hyphen;private utility `struct` provides a namespace for a suite of functions that `FilesystemUtil` uses as implementation details&period; These functions have a `WINDOWS&lowbar;INTERFACE` template parameter, which provides access to the entities that Windows systems declare, and that the function implementations need&period;
| xref:BloombergLP/bdls/MemoryUtil.adoc[`MemoryUtil`] 
| 
| xref:BloombergLP/bdls/OsUtil.adoc[`OsUtil`] 
| This `struct` provides a namespace for utility functions retrieving information about the operating system&period;
| xref:BloombergLP/bdls/PathUtil.adoc[`PathUtil`] 
| This struct contains utility methods for platform&hyphen;independent manipulation of filesystem paths&period; No method of this struct provides any filesystem operations or accesses the filesystem as part of its implementation&period;
| xref:BloombergLP/bdls/PipeUtil.adoc[`PipeUtil`] 
| This struct contains utility methods for platform&hyphen;independent named pipe operations&period;
| xref:BloombergLP/bdls/ProcessUtil.adoc[`ProcessUtil`] 
| This `struct` contains utility methods for platform&hyphen;independent process operations&period;
| xref:BloombergLP/bdls/TempDirectoryGuard.adoc[`TempDirectoryGuard`] 
| This class implements a scoped temporary directory guard&period; The guard tries to create a temporary directory in the system&hyphen;wide temp directory and falls back to the current directory&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdls/operator_lshift-0f.adoc[`operator&lt;&lt;`] 
| Stream insertion operators
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
