]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/console.cpp
Implement controls for file descriptor inheritance
[libs/core.git] / source / io / console.cpp
index d50d72df89a5b8b3e353e5612feb8175703f4a93..a7417edcee8f186263c965363f4942d9b1f82768 100644 (file)
@@ -18,9 +18,16 @@ Console::Console(Stream s):
 
 void Console::set_block(bool b)
 {
+       adjust_mode(mode, M_NONBLOCK, !b);
        sys_set_blocking(handle, b);
 }
 
+void Console::set_inherit(bool i)
+{
+       adjust_mode(mode, M_INHERIT, i);
+       sys_set_inherit(handle, i);
+}
+
 unsigned Console::do_write(const char *buf, unsigned len)
 {
        check_access(M_WRITE);
@@ -39,6 +46,12 @@ unsigned Console::do_read(char *buf, unsigned len)
        return ret;
 }
 
+const Handle &Console::get_handle(Mode m)
+{
+       check_access(m);
+       return handle;
+}
+
 Console &Console::instance(Stream s)
 {
        static Console in(CIN);