-#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)
- eof_flag = true;
-#endif