aboutsummaryrefslogtreecommitdiff
path: root/butl/fdstream.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'butl/fdstream.ixx')
-rw-r--r--butl/fdstream.ixx23
1 files changed, 23 insertions, 0 deletions
diff --git a/butl/fdstream.ixx b/butl/fdstream.ixx
index 0d3d098..884d190 100644
--- a/butl/fdstream.ixx
+++ b/butl/fdstream.ixx
@@ -30,6 +30,14 @@ namespace butl
reset ();
}
+ // fdbuf
+ //
+ inline auto_fd fdbuf::
+ release ()
+ {
+ return std::move (fd_);
+ }
+
// ifdstream
//
inline ifdstream::
@@ -104,6 +112,12 @@ namespace butl
open (f.string (), m);
}
+ inline auto_fd ifdstream::
+ release ()
+ {
+ return buf_.release ();
+ }
+
// ofdstream
//
inline ofdstream::
@@ -176,6 +190,15 @@ namespace butl
open (f.string (), m);
}
+ inline auto_fd ofdstream::
+ release ()
+ {
+ if (is_open ())
+ flush ();
+
+ return buf_.release ();
+ }
+
// fdopen()
//
inline auto_fd