if(!(mode&M_WRITE))
throw invalid_access(M_WRITE);
-#ifdef WIN32
- DWORD ret;
- if(!WriteFile(*handle, buf, len, &ret, 0))
- throw system_error("WriteFile");
-#else
- int ret = ::write(*handle, buf, len);
- if(ret==-1)
- throw system_error("write");
-#endif
-
- return ret;
+ return sys_write(handle, buf, len);
}
unsigned Console::do_read(char *buf, unsigned len)
if(!(mode&M_READ))
throw invalid_access(M_READ);
-#ifdef WIN32
- DWORD ret;
- if(!ReadFile(*handle, buf, len, &ret, 0))
- throw system_error("ReadFile");
-#else
- int ret = ::read(*handle, buf, len);
- if(ret==-1)
- {
- if(errno==EAGAIN)
- return 0;
- else
- throw system_error("read");
- }
- else if(ret==0)
+ unsigned ret = sys_read(handle, buf, len);
+ if(ret==0)
eof_flag = true;
-#endif
return ret;
}