Seekable streams largely fall into two categories: resizable and
fixed-size.
gio.seekable.Seekable on fixed-sized streams is approximately the same as POSIX
`lseek()` on a block device (for example: attempting to seek
past the end of the device is an error). Fixed streams typically cannot be
truncated.
gio.seekable.Seekable on resizable streams is approximately the same as POSIX
`lseek()` on a normal file. Seeking past the end and writing
data will usually cause the stream to resize by introducing zero bytes.
gio.seekable.Seekable is implemented by streams (implementations of gio.input_stream.InputStream or gio.output_stream.OutputStream) that support seeking.
Seekable streams largely fall into two categories: resizable and fixed-size.
gio.seekable.Seekable on fixed-sized streams is approximately the same as POSIX `lseek()` on a block device (for example: attempting to seek past the end of the device is an error). Fixed streams typically cannot be truncated.
gio.seekable.Seekable on resizable streams is approximately the same as POSIX `lseek()` on a normal file. Seeking past the end and writing data will usually cause the stream to resize by introducing zero bytes.