方法
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
,则您必须将其初始化为NULL
的GError*
。如果没有错误,方法将把参数初始化为 NULL
。如果有错误,参数将被设置为一个新的 GError
;调用者将接管数据,并负责释放它。