-
-unsigned sys_read(Handle &handle, char *buf, unsigned size)
-{
-#ifdef WIN32
- DWORD ret;
- if(ReadFile(*handle, buf, size, &ret, 0)==0)
- throw system_error("ReadFile");
-#else
- int ret = read(*handle, buf, size);
- if(ret==-1)
- {
- if(errno==EAGAIN)
- return 0;
- else
- throw system_error("read");
- }
-#endif
-
- return ret;
-}
-
-unsigned sys_write(Handle &handle, const char *buf, unsigned size)
-{
-#ifdef WIN32
- DWORD ret;
- if(WriteFile(*handle, buf, size, &ret, 0)==0)
- throw system_error("WriteFile");
-#else
- int ret = write(*handle, buf, size);
- if(ret==-1)
- {
- if(errno==EAGAIN)
- return 0;
- else
- throw system_error("write");
- }
-#endif
-
- return ret;
-}
-
-void sys_close(Handle &handle)
-{
-#ifdef WIN32
- CloseHandle(*handle);
-#else
- close(*handle);
-#endif
-}
-