Add seek support for stdin and stdout
This commit is contained in:
parent
0b824d3a98
commit
a2991cc9c0
@ -231,6 +231,16 @@ impl File for StdoutFile {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn seek(&self, pos: SeekFrom) -> Result<off_t> {
|
||||||
|
let (off, whence) = match pos {
|
||||||
|
SeekFrom::Start(off) => (off as off_t, 0 /* SEEK_SET */),
|
||||||
|
SeekFrom::Current(off) => (off as off_t, 1 /* SEEK_CUR */),
|
||||||
|
SeekFrom::End(off) => (off as off_t, 2 /* SEEK_END */),
|
||||||
|
};
|
||||||
|
let offset = try_libc!(libc::ocall::lseek(self.host_fd() as i32, off, whence));
|
||||||
|
Ok(offset)
|
||||||
|
}
|
||||||
|
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@ -411,6 +421,16 @@ impl File for StdinFile {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn seek(&self, pos: SeekFrom) -> Result<off_t> {
|
||||||
|
let (off, whence) = match pos {
|
||||||
|
SeekFrom::Start(off) => (off as off_t, 0 /* SEEK_SET */),
|
||||||
|
SeekFrom::Current(off) => (off as off_t, 1 /* SEEK_CUR */),
|
||||||
|
SeekFrom::End(off) => (off as off_t, 2 /* SEEK_END */),
|
||||||
|
};
|
||||||
|
let offset = try_libc!(libc::ocall::lseek(self.host_fd() as i32, off, whence));
|
||||||
|
Ok(offset)
|
||||||
|
}
|
||||||
|
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user