函数

Giopollable_stream_write_all

自:2.34

声明 [src]

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

说明 [src]

g_output_stream_write_all() 的方式,尝试把 count 字节写到 stream,但使用 g_pollable_stream_write() 而非 g_output_stream_write()。

成功写入 count 字节时,返回 TRUE,并将 bytes_written 设置为 count

如果操作中出错(包括非阻塞情况下的 G_IO_ERROR_WOULD_BLOCK),则返回 FALSE 并设置 error 来指示错误状态,更新 bytes_written 以包含在错误发生之前写入流的字节数。

与 g_pollable_stream_write() 一样,如果 blockingFALSE,则 stream 必须是一个 GPollableOutputStream,且 g_pollable_output_stream_can_poll() 对其返回 TRUE,否则行为未定义。如果 blockingTRUE,则 stream 不需要是一个 GPollableOutputStream

自 2.34 起可用

参数

stream

类型: GOutputStream

一个 GOutputStream

数据由函数调用者所有。
buffer

类型:一个 guint8 数组

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

数组的长度在 count 参数中指定。
数据由函数调用者所有。
count

类型: gsize

要写入的字节数。

blocking

类型: gboolean

是否执行阻塞式 I/O。

bytes_written

类型: gsize*

用于存储已写入 stream 的字节数的位置。

该参数将由函数设置。
cancellable

类型: GCancellable

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

该参数可以为 NULL
数据由函数调用者所有。
error

类型: GError **

可恢复错误 的返回位置。

该参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULL GError*
如果没有任何错误,该参数将由函数初始化并保持为 NULL
如果发生错误,该参数将被设置为一个新分配的 GError;调用者将对数据拥有所有权,并负责释放数据。

返回值

类型: gboolean

成功时返回 TRUE,有错误时返回 FALSE