结构体
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_APPEND
和G_IO_FLAG_NONBLOCK
之外的所有标志。io_get_flags
为信道获取
GIOFlags
。此函数只需要返回G_IO_FLAG_APPEND
和G_IO_FLAG_NONBLOCK
标志;g_io_channel_get_flags()
自动在适当的情况下添加其他标志。