方法

声明 [源]

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的读取和写入调用。

通道的默认状态是缓冲的。

参数

buffered

类型: gboolean

是否将通道设置为缓冲或非缓冲。