add File::write()
This commit is contained in:
parent
0aad4fd779
commit
1730838921
@ -89,3 +89,27 @@ bool File::read(uint8_t * buf, size_t size)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool File::write(const uint8_t * buf, size_t size)
|
||||
{
|
||||
if (size <= 0)
|
||||
return true;
|
||||
|
||||
size_t n_bytes_written = 0u;
|
||||
for (;;)
|
||||
{
|
||||
off_t write_size = ::write(m_fd, &buf[n_bytes_written], size - n_bytes_written);
|
||||
if (write_size <= 0)
|
||||
break;
|
||||
n_bytes_written += (size_t)write_size;
|
||||
if (n_bytes_written >= size)
|
||||
break;
|
||||
}
|
||||
|
||||
if (n_bytes_written != size)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ public:
|
||||
void close();
|
||||
size_t get_size();
|
||||
bool read(uint8_t * buf, size_t size);
|
||||
bool write(const uint8_t * buf, size_t size);
|
||||
|
||||
protected:
|
||||
int m_fd;
|
||||
|
Loading…
x
Reference in New Issue
Block a user