diff --git a/posix/fd.cpp b/posix/fd.cpp index 0a8d6214..d0c442e0 100644 --- a/posix/fd.cpp +++ b/posix/fd.cpp @@ -96,6 +96,27 @@ fd::stat (void) const } +/////////////////////////////////////////////////////////////////////////////// +ssize_t +fd::read (void *buffer, size_t count) +{ + auto res = ::read (m_fd, buffer, count); + if (res == -1) + errno_error::throw_code (); + return res; +} + +//----------------------------------------------------------------------------- +ssize_t +fd::write (const void *buffer, size_t count) +{ + auto res = ::write (m_fd, buffer, count); + if (res == -1) + errno_error::throw_code (); + return res; +} + + /////////////////////////////////////////////////////////////////////////////// fd::operator int (void) const { diff --git a/posix/fd.hpp b/posix/fd.hpp index 33bf1815..69cd12e6 100644 --- a/posix/fd.hpp +++ b/posix/fd.hpp @@ -53,6 +53,10 @@ namespace util::posix { /////////////////////////////////////////////////////////////////////// struct ::stat stat (void) const; + //--------------------------------------------------------------------- + ssize_t read ( void *buf, size_t count); + ssize_t write (const void *buf, size_t count); + /////////////////////////////////////////////////////////////////////// operator int (void) const;