[#BloombergLP-bdls-FileDescriptorGuard] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdls.adoc[bdls]::FileDescriptorGuard :relfileprefix: ../../ :mrdocs: This class implements a guard that conditionally closes an open file descriptor upon its destruction. == Synopsis Declared in `<bdls_filedescriptorguard.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FileDescriptorGuard; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdls/FileDescriptorGuard/2constructor.adoc[`FileDescriptorGuard`] [.small]#[constructor]# | Create a guard object that will manage the specified `descriptor`, closing it upon destruction (unless either `realease` or `closeAndRelease` has been called). It is permissible for `descriptor` to be `FilesystemUtil::k_INVALID_FD`, in which case the guard created will not manage anything. | xref:BloombergLP/bdls/FileDescriptorGuard/2destructor.adoc[`~FileDescriptorGuard`] [.small]#[destructor]# | If this guard object manages a file, close that file. | xref:BloombergLP/bdls/FileDescriptorGuard/closeAndRelease.adoc[`closeAndRelease`] | Close the file managed by this guard and release that file from management by this object. The behavior is undefined unless this object is managing a file. | xref:BloombergLP/bdls/FileDescriptorGuard/descriptor.adoc[`descriptor`] | If this guard is managing a file, return the file descriptor referring to that file, and return `FilesystemUtil::k_INVALID_FD` otherwise. | xref:BloombergLP/bdls/FileDescriptorGuard/release.adoc[`release`] | Release the file from management by this object (without closing it) and return the formerly managed descriptor. The behavior is undefined unless this object is managing a file. |=== == Data Members [cols="1"] |=== | Name | xref:BloombergLP/bdls/FileDescriptorGuard/d_descriptor.adoc[`d_descriptor`] |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#