GioFileIOStream

自:2.22

描述 [src]

class Gio.FileIOStream : Gio.IOStream
  implements Gio.Seekable {
  /* No available fields */
}

GFileIOStream 提供同时读写同一文件句柄的 I/O 流。

GFileIOStream 实现 GSeekable,该实现允许 I/O 流跳转到文件中的任意位置并截断该文件,前提是该文件的 文件系统支持这些操作。

要查找文件 I/O 流的位置,请使用 g_seekable_tell()

要了解文件 I/O 流是否支持寻址,请使用 g_seekable_can_seek()。要定位文件 I/O 流,请使用 g_seekable_seek()。要了解文件 I/O 流是否支持截断,请使用 g_seekable_can_truncate()。要截断文件 I/O 流,请使用 g_seekable_truncate()

所有 GFileIOStream 操作和 GSeekable 的实现的默认实现只是调用输出流上的相同操作。

自:2.22

实现

实例方法

g_file_io_stream_get_etag

在写入后获取文件的实体标签。必须在流被写入并关闭后调用此方法,因为 etag 在写入期间可能会发生更改。

自:2.22

g_file_io_stream_query_info

查询给定 attributes 的文件 io 流。此函数在查询流时阻塞。有关此函数的异步版本,请参见 g_file_io_stream_query_info_async()。在流被阻塞期间,流会在内部设置挂起标记,并且流上的任何其他操作都将因 G_IO_ERROR_PENDING 而失败。

自:2.22

g_file_io_stream_query_info_async

异步查询GFileInfo。完成后,将会使用 GAsyncResult 调用 callback,该 GAsyncResult 可用于通过 g_file_io_stream_query_info_finish() 完成操作。

自:2.22

g_file_io_stream_query_info_finish

完成 g_file_io_stream_query_info_async() 启动的异步查询。

自:2.22

继承自 GIOStream 的方法(10 个)
g_io_stream_clear_pending

清除 stream 上的挂起标记。

自:2.22

g_io_stream_close

关闭流,释放与之相关的资源。如果输入和输出流尚未关闭,这也会关闭这些流。

自:2.22

g_io_stream_close_async

请求异步关闭流,释放与之相关的资源。操作完成后,将会调用 callback。然后,您可以调用 g_io_stream_close_finish() 以获取操作的结果。

自:2.22

g_io_stream_close_finish

关闭流。

自:2.22

g_io_stream_get_input_stream

获取此对象的输入流。这用于读取。

自:2.22

g_io_stream_get_output_stream

获取此对象的输出流。这用于写入。

自:2.22

g_io_stream_has_pending

检查流是否有待处理的操作。

自:2.22

g_io_stream_is_closed

检查流是否已关闭。

自:2.22

g_io_stream_set_pending

设置 stream 使其有待处理的操作。如果已设置待处理标志或 stream 已关闭,它将返回 FALSE 并设置 error

自:2.22

g_io_stream_splice_async

异步将 stream1 的输出流与 stream2 的输入流连接起来,并将 stream2 的输出流与 stream1 的输入流连接起来。

自: 2.28

GObject (43) 继承的方法

有关方法的完整列表,请参阅 GObject

GSeekable (5) 继承的方法
g_seekable_can_seek

测试流是否支持 GSeekableIface

g_seekable_can_truncate

测试是否可以使用 g_seekable_truncate() 调整流的长度。

g_seekable_seek

通过给定的 offset,由 type 修改,在流中进行搜索。

g_seekable_tell

报告流中的当前位置。

g_seekable_truncate

将流的长度设置为 offset。如果流以前大于 offset,则会丢弃额外的数据。如果流以前小于 offset,则使用 NUL('\0')字节进行扩展。

属性

GIOStream (3) 继承的属性
Gio.IOStream:closed

流是否已关闭。

自:2.22

Gio.IOStream:input-stream

用于从中读取的 GInputStream

自:2.22

Gio.IOStream:output-stream

用于写入的 GOutputStream

自:2.22

信号

GObject (1) 继承的信号
GObject::notify

当对象的一个属性通过 g_object_set_property()、g_object_set() 等来设置值时,会在对象上发出 notify 信号。

类结构

struct GioFileIOStreamClass {
  GIOStreamClass parent_class;
  goffset (* tell) (
    GFileIOStream* stream
  );
  gboolean (* can_seek) (
    GFileIOStream* stream
  );
  gboolean (* seek) (
    GFileIOStream* stream,
    goffset offset,
    GSeekType type,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* can_truncate) (
    GFileIOStream* stream
  );
  gboolean (* truncate_fn) (
    GFileIOStream* stream,
    goffset size,
    GCancellable* cancellable,
    GError** error
  );
  GFileInfo* (* query_info) (
    GFileIOStream* stream,
    const char* attributes,
    GCancellable* cancellable,
    GError** error
  );
  void (* query_info_async) (
    GFileIOStream* stream,
    const char* attributes,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GFileInfo* (* query_info_finish) (
    GFileIOStream* stream,
    GAsyncResult* result,
    GError** error
  );
  char* (* get_etag) (
    GFileIOStream* stream
  );
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  
}

没有可用的描述。

类成员
parent_class: GIOStreamClass

没有可用的描述。

tell: goffset (* tell) ( GFileIOStream* stream )

没有可用的描述。

can_seek: gboolean (* can_seek) ( GFileIOStream* stream )

没有可用的描述。

seek: gboolean (* seek) ( GFileIOStream* stream, goffset offset, GSeekType type, GCancellable* cancellable, GError** error )

没有可用的描述。

can_truncate: gboolean (* can_truncate) ( GFileIOStream* stream )

没有可用的描述。

truncate_fn: gboolean (* truncate_fn) ( GFileIOStream* stream, goffset size, GCancellable* cancellable, GError** error )

没有可用的描述。

query_info: GFileInfo* (* query_info) ( GFileIOStream* stream, const char* attributes, GCancellable* cancellable, GError** error )

没有可用的描述。

query_info_async: void (* query_info_async) ( GFileIOStream* stream, const char* attributes, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

query_info_finish: GFileInfo* (* query_info_finish) ( GFileIOStream* stream, GAsyncResult* result, GError** error )

没有可用的描述。

get_etag: char* (* get_etag) ( GFileIOStream* stream )

没有可用的描述。

_g_reserved1: void (* _g_reserved1) ( void )

没有可用的描述。

_g_reserved2: void (* _g_reserved2) ( void )

没有可用的描述。

_g_reserved3: void (* _g_reserved3) ( void )

没有可用的描述。

_g_reserved4: void (* _g_reserved4) ( void )

没有可用的描述。

_g_reserved5: void (* _g_reserved5) ( void )

没有可用的描述。

虚方法

Gio.FileIOStreamClass.can_seek
没有可用的描述。

Gio.FileIOStreamClass.can_truncate
没有可用的描述。

Gio.FileIOStreamClass.get_etag

在写入后获取文件的实体标签。必须在流被写入并关闭后调用此方法,因为 etag 在写入期间可能会发生更改。

自:2.22

Gio.FileIOStreamClass.query_info

查询给定 attributes 的文件 io 流。此函数在查询流时阻塞。有关此函数的异步版本,请参见 g_file_io_stream_query_info_async()。在流被阻塞期间,流会在内部设置挂起标记,并且流上的任何其他操作都将因 G_IO_ERROR_PENDING 而失败。

自:2.22

Gio.FileIOStreamClass.query_info_async

异步查询GFileInfo。完成后,将会使用 GAsyncResult 调用 callback,该 GAsyncResult 可用于通过 g_file_io_stream_query_info_finish() 完成操作。

自:2.22

Gio.FileIOStreamClass.query_info_finish

完成 g_file_io_stream_query_info_async() 启动的异步查询。

自:2.22

Gio.FileIOStreamClass.seek
没有可用的描述。

Gio.FileIOStreamClass.tell
没有可用的描述。

Gio.FileIOStreamClass.truncate_fn
没有可用的描述。