void Console::set_block(bool b)
{
+ adjust_mode(mode, M_NONBLOCK, !b);
sys_set_blocking(handle, b);
}
-unsigned Console::do_write(const char *buf, unsigned len)
+void Console::set_inherit(bool i)
+{
+ adjust_mode(mode, M_INHERIT, i);
+ sys_set_inherit(handle, i);
+}
+
+size_t Console::do_write(const char *buf, size_t len)
{
check_access(M_WRITE);
return sys_write(handle, buf, len);
}
-unsigned Console::do_read(char *buf, unsigned len)
+size_t Console::do_read(char *buf, size_t len)
{
check_access(M_READ);
- unsigned ret = sys_read(handle, buf, len);
+ size_t ret = sys_read(handle, buf, len);
if(ret==0)
set_eof();
return ret;
}
+const Handle &Console::get_handle(Mode m)
+{
+ check_access(m);
+ return handle;
+}
+
Console &Console::instance(Stream s)
{
static Console in(CIN);