X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Ffile.cpp;fp=source%2Fio%2Ffile.cpp;h=1b207a25971f960ef99fa5f4481a0be23239e38d;hp=c9e5d4978c5255e418c12d7794146e2d062f0667;hb=6c40658510b68788fd5ef0488b20873b6aa32938;hpb=c21ab7e49852585df01b4cc19599e25a918b581b diff --git a/source/io/file.cpp b/source/io/file.cpp index c9e5d49..1b207a2 100644 --- a/source/io/file.cpp +++ b/source/io/file.cpp @@ -96,11 +96,7 @@ void File::close() signal_flush_required.emit(); -#ifdef WIN32 - CloseHandle(*handle); -#else - ::close(*handle); -#endif + sys_close(handle); handle = Handle(); signal_closed.emit(); @@ -129,21 +125,9 @@ unsigned File::do_write(const char *buf, unsigned size) #ifdef WIN32 if(mode&M_APPEND) seek(0, S_END); - 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; + return sys_write(handle, buf, size); } unsigned File::do_read(char *buf, unsigned size) @@ -153,21 +137,7 @@ unsigned File::do_read(char *buf, unsigned size) if(size==0) return 0; -#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 - + unsigned ret = sys_read(handle, buf, size); if(ret==0) { eof_flag = true;