方法

GioOutputStreamwrite_all

声明 [src]

gboolean
g_output_stream_write_all (
  GOutputStream* stream,
  void* buffer,
  gsize count,
  gsize* bytes_written,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

尝试从 buffer 中写入 count 个字节到流中。在操作期间将阻塞。

此函数与 g_output_stream_write() 类似,除了它会尝试写入所需的尽可能多的字节,只在出错时停止。

在成功写入 count 个字节后,返回 TRUE,并且 bytes_written 被设置为 count

如果在操作过程中发生错误,返回 FALSE 并将 error 设置为指示错误状态。

作为使用 GError 的函数的正常惯例的特殊例外,如果此函数返回 FALSE(并设置 error),则 bytes_written 将设置为遇到错误之前成功写入的字节数。此功能仅从 C 中可用。如果您需要从其他语言中获取,则必须围绕 g_output_stream_write() 编写自己的循环。

参数

buffer

类型:一个 guint8 数组

包含要写入数据的缓冲区。

数组的长度由 count 参数指定。
数据由方法调用方拥有。
count

类型: gsize

要写入的字节数。

bytes_written

类型: gsize*

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

该参数将由该函数设置。
参数可以是 NULL
可取消

类型: GCancellable

可选的 GCancellable 对象,用 NULL 表示忽略。

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

类型: GError **

用于存放 可恢复错误 的返回位置。

参数可以是 NULL
如果返回位置不是 NULL,则您必须将其初始化为 NULLGError*
如果没有错误,方法将把参数初始化为 NULL
如果有错误,参数将被设置为一个新的 GError;调用者将接管数据,并负责释放它。

返回值

类型: gboolean

成功时返回 TRUE,发生错误时返回 FALSE