虚拟方法

GioOutputStreamwritev Fn

自2.60以来

声明 [src]

gboolean
writev_fn (
  GOutputStream* stream,
  const GOutputVector* vectors,
  gsize n_vectors,
  gsize* bytes_written,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

尝试将包含在 n_vectors vectors 中的字节写入流。在操作过程中会阻塞。

如果 n_vectors 是0或 vectors中所有字节的和为0,则返回0并不做任何操作。

成功时,返回写入流的字节数。这可能不等于请求的大小,这可能是由于部分I/O错误或流中存储不足等原因导致的。所有写入都将阻塞,直到至少写入一个字节或发生错误;除非 n_vectors 为0或 vectors 中所有字节的和为0,否则永远不会返回0。

如果 cancellable 不是 NULL,则可以从另一个线程触发可取消对象以取消操作。如果操作被取消,将返回错误 G_IO_ERROR_CANCELLED。如果在取消操作时操作已完成,则将返回部分结果,而不产生错误。

一些实现可能对聚合缓冲区大小有限制。如果超过这些限制,则将返回 G_IO_ERROR_INVALID_ARGUMENT。例如,在UNIX平台上的本地文件写入中,聚合缓冲区的大小必须不超过 G_MAXSSIZE 字节。

自2.60以来可用

参数

向量

类型:一个 GOutputVector 数组

包含要写入的 GOutputVector 的缓冲区。

数组的长度在 n_vectors 参数中指定。
数据由方法调用者拥有。
n_vectors

类型: gsize

要写入的向量的数量。

bytes_written

类型: gsize *

存储写入流的字节数的位置。

此参数将由函数设置。
该参数可以是 NULL
cancellable

类型: GCancellable

可选的可取消对象。

该参数可以是 NULL
数据由方法调用者拥有。
错误

类型: GError **

存储可恢复错误的返回位置。

该参数可以是 NULL
如果返回的位置不是 NULL,那么您必须将其初始化为 NULLGError*
如果没有错误,虚拟函数将保留该参数为 NULL
如果发生错误,参数将被设置为一个新的 GError;调用者将负责数据的所有权,并且负责释放它。

返回值

类型:  gboolean

在成功时返回 TRUE,如果在过程中有错误则返回 FALSE