方法
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;调用者将负责数据的所有权和释放它。