接口
GioSeekable
描述 [src]
interface Gio.Seekable : GObject.Object
GSeekable
是由支持定位的流(GInputStream
或 GOutputStream
)实现的。
Seekable流主要分为两大类:可调整大小和固定大小。
在固定大小的流上实施的GSeekable
大致与在块设备上实施的POSIX lseek()
相同(例如:尝试超出设备末尾是错误)。固定流通常不能截断。
可调整大小的流上的GSeekable
大致与在普通文件上实施的POSIX lseek()
相同。超出末尾并写入数据通常会导致通过引入零字节来调整流的大小。
先决条件
为了实现Seekable,您的类型必须从GObject
继承。
接口结构
struct GioSeekableIface {
GTypeInterface g_iface;
goffset (* tell) (
GSeekable* seekable
);
gboolean (* can_seek) (
GSeekable* seekable
);
gboolean (* seek) (
GSeekable* seekable,
goffset offset,
GSeekType type,
GCancellable* cancellable,
GError** error
);
gboolean (* can_truncate) (
GSeekable* seekable
);
gboolean (* truncate_fn) (
GSeekable* seekable,
goffset offset,
GCancellable* cancellable,
GError** error
);
}
提供一个接口,用于在I/O流上实现可寻址的功能。
接口成员
g_iface |
|
父接口。 |
|
tell |
|
告知流中的当前位置。 |
|
can_seek |
|
检查流是否支持定位。 |
|
seek |
|
在流中的某个位置定位。 |
|
can_truncate |
|
检查流是否支持截断。 |
|
truncate_fn |
|
截断流。 |