结构体

GLibIOFuncs

说明 [src]

struct GIOFuncs {
  GIOStatus (* io_read) (
    GIOChannel* channel,
    gchar* buf,
    gsize count,
    gsize* bytes_read,
    GError** error
  );
  GIOStatus (* io_write) (
    GIOChannel* channel,
    const gchar* buf,
    gsize count,
    gsize* bytes_written,
    GError** error
  );
  GIOStatus (* io_seek) (
    GIOChannel* channel,
    gint64 offset,
    GSeekType type,
    GError** error
  );
  GIOStatus (* io_close) (
    GIOChannel* channel,
    GError** error
  );
  GSource* (* io_create_watch) (
    GIOChannel* channel,
    GIOCondition condition
  );
  void (* io_free) (
    GIOChannel* channel
  );
  GIOStatus (* io_set_flags) (
    GIOChannel* channel,
    GIOFlags flags,
    GError** error
  );
  GIOFlags (* io_get_flags) (
    GIOChannel* channel
  );
}

用于以通用方式处理不同类型的 GIOChannel 的函数表。

结构体成员
io_read

从信道读取原始字节。它从各种函数(例如 g_io_channel_read_chars())调用,以便从信道读取原始字节。编码和缓冲问题在更高的级别进行处理。

io_write

向信道写入原始字节。它从各种函数(例如 g_io_channel_write_chars())调用,以便向信道写入原始字节。编码和缓冲问题在更高的级别进行处理。

io_seek

查找信道。它从支持它的信道的 g_io_channel_seek() 调用。

io_close

关闭信道。它从 g_io_channel_close() 在刷新缓冲区后调用。

io_create_watch

在信道上创建监视。此调用直接对应于 g_io_create_watch()。

io_free

当需要释放信道时,从 g_io_channel_unref() 调用。此函数必须释放与信道关联的内存,包括释放 GIOChannel 结构体本身。在调用此函数时,信道缓冲区已刷新,并且可能已调用 io_close

io_set_flags

设置信道上的 GIOFlags。此函数从 g_io_channel_get_flags() 调用,过滤掉了 G_IO_FLAG_APPENDG_IO_FLAG_NONBLOCK 之外的所有标志。

io_get_flags

为信道获取 GIOFlags。此函数只需要返回 G_IO_FLAG_APPENDG_IO_FLAG_NONBLOCK 标志;g_io_channel_get_flags() 自动在适当的情况下添加其他标志。