方法
声明 [源]
void
g_io_channel_set_buffered (
GIOChannel* channel,
gboolean buffered
)
描述 [源]
只有当通道的编码是 NULL
时,才能设置缓冲区状态。对于任何其他编码,通道必须是缓冲的。
只有当通道的内部缓冲区已被刷新时,才能将缓冲的通道设置为非缓冲。新创建的通道或已返回 G_IO_STATUS_EOF
的通道不需要此类刷新。对于只写通道,调用 g_io_channel_flush () 即可。对于所有其他通道,可以通过调用 g_io_channel_seek_position () 来刷新缓冲区。这包括使用 G_SEEK_CUR
寻找类型和偏移量为零的情况。请注意,这意味着一旦从基于套接字的通道中读取了数据,就无法将其设置为非缓冲。
在不缓冲的通道上,如果需要维护旧代码,则可以安全地混合新API和旧API的读取和写入调用。
通道的默认状态是缓冲的。