方法
GioInputStreamread_async
声明 [源]
void
g_input_stream_read_async (
GInputStream* stream,
void* buffer,
gsize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [源]
从流中异步读取 count 字节到从 buffer 开始的缓冲区。操作完成后将调用 callback。此时可以调用 g_input_stream_read_finish() 来获取操作的结果。
在异步请求期间,不允许在 stream 上进行其他同步和异步调用,这会导致 G_IO_ERROR_PENDING 错误。
count 的值超过 G_MAXSSIZE 将导致 G_IO_ERROR_INVALID_ARGUMENT 错误。
成功时,将传入缓冲区的字节数传递给回调。如果这不同于请求的大小,则不是错误,因为例如在文件的末尾可能会发生这种情况,但通常我们尝试读取尽可能多的字节。在文件末尾(或如果 count 为零)时返回零,但决不如此。
优先级较高的(数值较小的)任何未处理的I/O请求都将先于优先级较低的未处理请求执行。默认优先级是 G_PRIORITY_DEFAULT。
异步方法有一个默认的后备实现,它使用线程来实现异步性,因此对于继承类而言它们是可选的。然而,如果你重写了其中一个,那么你也必须重写所有其他方法。
此方法异步完成。请在 GAsyncReadyCallback 中使用 g_input_stream_read_finish() 来获取操作的结果。
参数
buffer-
类型: 一个
guint8数组用于读取数据的缓冲区(其长度至少应为 count 字节)。
该参数将由函数设置。 数组的长度在 count参数中指定。返回的数据由实例拥有。 count-
类型:
gsize将从流中读取的字节数。
io_priority-
类型:
int请求的 I/O 优先级。
cancellable-
类型:
GCancellable可选的
GCancellable对象,NULL为忽略。该参数可以是 NULL。数据由方法的调用者拥有。 callback-
当请求得到满足时调用的
GAsyncReadyCallback。该参数可以是 NULL。 user_data-
类型:
gpointer传递给回调函数的数据。
该参数可以是 NULL。数据由方法的调用者拥有。