方法
GioPollableInputStreamread_nonblocking
声明 [src]
gssize
g_pollable_input_stream_read_nonblocking (
GPollableInputStream* stream,
void* buffer,
gsize count,
GCancellable* cancellable,
GError** error
)
描述 [src]
尝试从 stream
读取最多 count
字节到 buffer
,与 g_input_stream_read() 相同。如果 stream
当前不可读,将立即返回 G_IO_ERROR_WOULD_BLOCK
,可以使用 g_pollable_input_stream_create_source()
创建一个当 stream
可读时将被触发的 GSource
。
注意,由于该方法从不阻塞,您无法实际使用 cancellable
来取消它。但是,如果在您调用时 cancellable
已被取消,它将返回错误,这可能在您在源触发(由于已被取消)后调用此方法时发生。
如果 g_pollable_input_stream_can_poll()
对于 stream
返回 FALSE
,则此方法的操作未定义。
参数
buffer
-
类型:
guint8
类型数组将数据读取到其中的缓冲区(其长度应至少为
count
字节)。会被函数设置。 数组的长度由 count
参数指定。返回的数据由实例所有。 count
-
类型:
gsize
要读取的字节数。
cancellable
-
类型:
GCancellable
一个
GCancellable
,或者是NULL
。参数可以是 NULL
。数据由方法调用者所有。 error
-
类型:
GError **
用于恢复错误的返回位置的a recoverable error。
参数可以是 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
GError
。如果没有任何错误,方法将保留初始化为 NULL
。在出现错误的情况下,参数将设置为新的 GError
;调用者将获得数据的所有权,并负责释放它。