From 4196702b38ca2024379921197b9814967530d1ba Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Tue, 11 Oct 2016 20:58:19 +1100 Subject: [PATCH] posix/fd: add read and write member functions --- posix/fd.cpp | 21 +++++++++++++++++++++ posix/fd.hpp | 4 ++++ 2 files changed, 25 insertions(+) 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;