Basics
Guides
API Reference
Basics
Guides
API Reference
[22:7] extends: object
GSeekable is implemented by streams (implementations of
[class@Gio.InputStream] or [class@Gio.OutputStream]) that support seeking.
Seekable streams largely fall into two categories: resizable and fixed-size.
GSeekable 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. GSeekable 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.
GSeekable (Handle = null)
Creates a new
Seekableby wrapping a native handle or another wrapper.
Handle is the native handle or another wrapper whose handle to adopt.toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.can_seek ()
Tests if the stream supports the #GSeekableIface.
%TRUE if @seekable can be seeked. %FALSE otherwise..can_truncate ()
Tests if the length of the stream can be adjusted with g_seekable_truncate().
%TRUE if the stream can be truncated, %FALSE otherwise..seek (int offset, string type, object cancellable)
Seeks in the stream by the given @offset, modified by @type. Attempting to seek past the end of the stream will have different results depending on if the stream is fixed-sized or resizable. If the stream is resizable then seeking past the end and then writing will result in zeros filling the empty space. Seeking past the end of a resizable stream and reading will result in EOF. Seeking past the end of a fixed-sized stream will fail. Any operation that would result in a negative offset will fail. If
is not %NULL, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.offset is a #goffset..type is a #GSeekType..cancellable is optional #GCancellable object, %NULL to ignore..%TRUE if successful. If an error has occurred, this function will return %FALSE and set @error appropriately if present..tell ()
Tells the current position within the stream.
the (positive or zero) offset from the beginning of the buffer, zero if the target is not seekable..truncate (int offset, object cancellable)
Sets the length of the stream to @offset. If the stream was previously larger than @offset, the extra data is discarded. If the stream was previously shorter than @offset, it is extended with NUL ('\0') bytes. If
is not %NULL, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an operation was partially finished when the operation was cancelled the partial result will be returned, without an error.offset is new length for @seekable, in bytes..cancellable is optional #GCancellable object, %NULL to ignore..%TRUE if successful. If an error has occurred, this function will return %FALSE and set @error appropriately if present..
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.