sys_set_blocking(handle, b);
}
-unsigned File::do_write(const char *buf, unsigned size)
+void File::set_inherit(bool i)
+{
+ adjust_mode(mode, M_INHERIT, i);
+ sys_set_inherit(handle, i);
+}
+
+size_t File::do_write(const char *buf, size_t size)
{
check_access(M_WRITE);
return sys_write(handle, buf, size);
}
-unsigned File::do_read(char *buf, unsigned size)
+size_t File::do_read(char *buf, size_t size)
{
check_access(M_READ);
if(size==0)
return 0;
- unsigned ret = sys_read(handle, buf, size);
+ size_t ret = sys_read(handle, buf, size);
if(ret==0)
set_eof();
file.set_block(b);
}
-unsigned BufferedFile::do_write(const char *buf, unsigned size)
+void BufferedFile::set_inherit(bool)
+{
+ throw logic_error("BufferedFile::set_inherit");
+}
+
+size_t BufferedFile::do_write(const char *buf, size_t size)
{
- unsigned ret = buffer.write(buf, size);
+ size_t ret = buffer.write(buf, size);
position += ret;
return ret;
}
-unsigned BufferedFile::do_read(char *buf, unsigned size)
+size_t BufferedFile::do_read(char *buf, size_t size)
{
- unsigned ret = buffer.read(buf, size);
+ size_t ret = buffer.read(buf, size);
position += ret;
return ret;
}
-unsigned BufferedFile::put(char c)
+size_t BufferedFile::put(char c)
{
- unsigned ret = buffer.put(c);
+ size_t ret = buffer.put(c);
position += ret;
return ret;
}