方法

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,那么您必须将它初始化为一个 NULLGError*
如果没有错误,该方法将默认将参数初始化为 NULL
在错误情况下,参数将被设置为一个新的 GError;调用者将负责数据的所有权和释放它。

返回值

类型: gboolean

成功时分发 TRUE,有错误时分发 FALSE