函数

Giopollable_stream_read

自:2.34

声明 [src]

gssize
g_pollable_stream_read (
  GInputStream* stream,
  void* buffer,
  gsize count,
  gboolean blocking,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

尝试从stream读取,类似于用g_input_stream_read()(如果blockingTRUE)或g_pollable_input_stream_read_nonblocking()(如果blockingFALSE)。这可以更容易地在阻塞和非阻塞实现的代码之间共享。

如果blockingFALSE,则stream必须是一个对于g_pollable_input_stream_can_poll()返回TRUEGPollableInputStream,否则行为未定义。如果blockingTRUE,则stream不需要是GPollableInputStream

自:2.34

参数

stream

类型: GInputStream

A GInputStream

数据由函数的调用者拥有。
buffer

类型: 一个guint8数组

一个用于读取数据的缓冲区。

数组的长度在count参数中指定。
数据由函数的调用者拥有。
count

类型: gsize

要读取的字节数。

blocking

类型: gboolean

是否进行阻塞I/O。

cancellable

类型: GCancellable

可选的GCancellable对象,NULL为忽略。

参数可以为NULL
数据由函数的调用者拥有。
error

类型: GError **

可恢复错误的返回位置。

参数可以为NULL
如果返回位置不为NULL,则必须将其初始化为NULL GError*
如果没有错误,函数将保留参数初始化为NULL
如果发生错误,则参数将被设置为一个新的GError;调用者将拥有数据,并负责释放它。

返回值

类型: gssize

读取的字节数,或发生错误时为-1。