方法
GioInputStreamread_all
声明 [来源]
gboolean
g_input_stream_read_all (
GInputStream* stream,
void* buffer,
gsize count,
gsize* bytes_read,
GCancellable* cancellable,
GError** error
)
描述 [源位置]
尝试从流中读取 count
个字节到起始地址为 buffer
的缓冲区。在读取过程中将阻塞。
这个函数类似于 g_input_stream_read(),除了它尝试读取尽可能多的字节,仅在有错误或流结束时停止。
如果成功读取 count
个字节,或者达到了流的末尾,返回 TRUE
,并将 bytes_read
设置为读取到 buffer
中的字节数。
如果在操作过程中发生错误,则返回 FALSE
,并将 error
设置为指示错误状态。
由于使用了 GError
的正常约定,如果此函数返回 FALSE
(并设置 error
),则 bytes_read
将设置为遇到错误之前成功读取的字节数。此功能仅在C中可用。如果您需要其他语言中的功能,则必须在 g_input_stream_read() 的周围编写自己的循环。
参数
buffer
-
类型:一个由
guint8
组成的数组读取数据入的缓冲区(其长度应至少为 count 字节)。
该参数将由函数设置。 数组的长度在 count
参数中指定。返回的数据由实例拥有。 count
-
类型:
gsize
要从流中读取的字节数。
bytes_read
-
类型:
gsize*
存储从流中读取的字节数的位置。
该参数将由函数设置。 cancellable
-
类型:
GCancellable
可选的
GCancellable
对象,默认为忽略。该参数可以为 NULL
。数据由方法的调用者拥有。 error
-
类型:
GError **
用于存储可恢复错误的位置。
该参数可以为 NULL
。如果返回位置不是 NULL
,那么您必须将它初始化为一个NULL
的GError*
。如果没有错误,该方法将默认将参数初始化为 NULL
。在错误情况下,参数将被设置为一个新的 GError
;调用者将负责数据的所有权和释放它。